{
  "cveId": "CVE-2022-49271",
  "url": "https://patchblox.com/security/cve/CVE-2022-49271",
  "summary": "CVE-2022-49271 is fixed in linux on 1 platform, first by DEBIAN-CVE-2022-49271, released February 26, 2025. It is not reported as exploited. Patch Radar priority: Routine.",
  "title": "linux: In the Linux kernel, the following vulnerability has been resolved:  cifs: prevent bad output lengths in smb2_ioctl_q...",
  "description": "In the Linux kernel, the following vulnerability has been resolved:  cifs: prevent bad output lengths in smb2_ioctl_query_info()  When calling smb2_ioctl_query_info() with smb_query_info::flags=PASSTHRU_FSCTL and smb_query_info::output_buffer_length=0, the following would return 0x10  \tbuffer = memdup_user(arg \u002B sizeof(struct smb_query_info), \t\t\t     qi.output_buffer_length); \tif (IS_ERR(buffer)) { \t\tkfree(vars); \t\treturn PTR_ERR(buffer); \t}  rather than a valid pointer thus making IS_ERR() check fail.  This would then cause a NULL ptr deference in @buffer when accessing it later in smb2_ioctl_query_ioctl().  While at it, prevent having a @buffer smaller than 8 bytes to correctly handle SMB2_SET_INFO FileEndOfFileInformation requests when smb_query_info::flags=PASSTHRU_SET_INFO.  Here is a small C reproducer which triggers a NULL ptr in @buffer when passing an invalid smb_query_info::flags  \t#include \u003Cstdio.h\u003E \t#include \u003Cstdlib.h\u003E \t#include \u003Cstdint.h\u003E \t#include \u003Cunistd.h\u003E \t#include \u003Cfcntl.h\u003E \t#include \u003Csys/ioctl.h\u003E  \t#define die(s) perror(s), exit(1) \t#define QUERY_INFO 0xc018cf07  \tint main(int argc, char *argv[]) \t{ \t\tint fd;  \t\tif (argc \u003C 2) \t\t\texit(1); \t\tfd = open(argv[1], O_RDONLY); \t\tif (fd == -1) \t\t\tdie(\u0022open\u0022); \t\tif (ioctl(fd, QUERY_INFO, (uint32_t[]) { 0, 0, 0, 4, 0, 0}) == -1) \t\t\tdie(\u0022ioctl\u0022); \t\tclose(fd); \t\treturn 0; \t}  \tmount.cifs //srv/share /mnt -o ... \tgcc repro.c \u0026\u0026 ./a.out /mnt/f0  \t[  114.138620] general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN NOPTI \t[  114.139310] KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007] \t[  114.139775] CPU: 2 PID: 995 Comm: a.out Not tainted 5.17.0-rc8 #1 \t[  114.140148] Hardware name: QEMU Standard PC (Q35 \u002B ICH9, 2009), BIOS rel-1.15.0-0-g2dd4b9b-rebuilt.opensuse.org 04/01/2014 \t[  114.140818] RIP: 0010:smb2_ioctl_query_info\u002B0x206/0x410 [cifs] \t[  114.141221] Code: 00 00 00 00 fc ff df 48 c1 ea 03 80 3c 02 00 0f 85 c8 01 00 00 48 b8 00 00 00 00 00 fc ff df 4c 8b 7b 28 4c 89 fa 48 c1 ea 03 \u003C80\u003E 3c 02 00 0f 85 9c 01 00 00 49 8b 3f e8 58 02 fb ff 48 8b 14 24 \t[  114.142348] RSP: 0018:ffffc90000b47b00 EFLAGS: 00010256 \t[  114.142692] RAX: dffffc0000000000 RBX: ffff888115503200 RCX: ffffffffa020580d \t[  114.143119] RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffffffffa043a380 \t[  114.143544] RBP: ffff888115503278 R08: 0000000000000001 R09: 0000000000000003 \t[  114.143983] R10: fffffbfff4087470 R11: 0000000000000001 R12: ffff888115503288 \t[  114.144424] R13: 00000000ffffffea R14: ffff888115503228 R15: 0000000000000000 \t[  114.144852] FS:  00007f7aeabdf740(0000) GS:ffff888151600000(0000) knlGS:0000000000000000 \t[  114.145338] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 \t[  114.145692] CR2: 00007f7aeacfdf5e CR3: 000000012000e000 CR4: 0000000000350ee0 \t[  114.146131] Call Trace: \t[  114.146291]  \u003CTASK\u003E \t[  114.146432]  ? smb2_query_reparse_tag\u002B0x890/0x890 [cifs] \t[  114.146800]  ? cifs_mapchar\u002B0x460/0x460 [cifs] \t[  114.147121]  ? rcu_read_lock_sched_held\u002B0x3f/0x70 \t[  114.147412]  ? cifs_strndup_to_utf16\u002B0x15b/0x250 [cifs] \t[  114.147775]  ? dentry_path_raw\u002B0xa6/0xf0 \t[  114.148024]  ? cifs_convert_path_to_utf16\u002B0x198/0x220 [cifs] \t[  114.148413]  ? smb2_check_message\u002B0x1080/0x1080 [cifs] \t[  114.148766]  ? rcu_read_lock_sched_held\u002B0x3f/0x70 \t[  114.149065]  cifs_ioctl\u002B0x1577/0x3320 [cifs] \t[  114.149371]  ? lock_downgrade\u002B0x6f0/0x6f0 \t[  114.149631]  ? cifs_readdir\u002B0x2e60/0x2e60 [cifs] \t[  114.149956]  ? rcu_read_lock_sched_held\u002B0x3f/0x70 \t[  114.150250]  ? __rseq_handle_notify_resume\u002B0x80b/0xbe0 \t[  114.150562]  ? __up_read\u002B0x192/0x710 \t[  114.150791]  ? __ia32_sys_rseq\u002B0xf0/0xf0 \t[  114.151025]  ? __x64_sys_openat\u002B0x11f/0x1d0 \t[  114.151296]  __x64_sys_ioctl\u002B0x127/0x190 \t[  114.151549]  do_syscall_64\u002B0x3b/0x90 \t[  114.151768]  entry_SYSCALL_64_after_hwframe\u002B0x44/0xae \t[  114.152079] RIP: 0033:0x7f7aead043df \t[  114.152306] Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 ---truncated---",
  "published": "2025-02-26T07:01:04Z",
  "severity": "medium",
  "cvss": 5.5,
  "cvssVector": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
  "epss": 0.00268,
  "epssPercentile": 0.19078,
  "priority": "Routine",
  "priorityTier": 4,
  "exploited": false,
  "vendorExploited": false,
  "disclosed": false,
  "fixes": [
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 12.15 (bookworm)",
      "fixedVersion": "5.17.3-1",
      "fix": "DEBIAN-CVE-2022-49271",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2022-49271",
      "released": "2025-02-26T07:01:04Z"
    },
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 13.5 (trixie)",
      "fixedVersion": "5.17.3-1",
      "fix": "DEBIAN-CVE-2022-49271",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2022-49271",
      "released": "2025-02-26T07:01:04Z"
    },
    {
      "platform": "linux",
      "product": "linux",
      "release": "Debian 14",
      "fixedVersion": "5.17.3-1",
      "fix": "DEBIAN-CVE-2022-49271",
      "url": "https://patchblox.com/security/fix/linux/debian-cve-2022-49271",
      "released": "2025-02-26T07:01:04Z"
    }
  ],
  "noFixYet": [],
  "dataAsOf": "2026-11-08T00:53:09Z",
  "attribution": {
    "text": "Data: Patchblox Patch Radar",
    "url": "https://patchblox.com/security/patch-radar",
    "terms": "https://patchblox.com/security/patch-radar/use-the-data"
  }
}