Skip to content
CVE PROGRAM SOURCE RECORDUnscored

CVE-2023-53246

cifs: fix DFS traversal oops without CONFIG_CIFS_DFS_UPCALL

Description

In the Linux kernel, the following vulnerability has been resolved: cifs: fix DFS traversal oops without CONFIG_CIFS_DFS_UPCALL When compiled with CONFIG_CIFS_DFS_UPCALL disabled, cifs_dfs_d_automount is NULL. cifs.ko logic for mapping CIFS_FATTR_DFS_REFERRAL attributes to S_AUTOMOUNT and corresponding dentry flags is retained regardless of CONFIG_CIFS_DFS_UPCALL, leading to a NULL pointer dereference in VFS follow_automount() when traversing a DFS referral link: BUG: kernel NULL pointer dereference, address: 0000000000000000 ... Call Trace: <TASK> __traverse_mounts+0xb5/0x220 ? cifs_revalidate_mapping+0x65/0xc0 [cifs] step_into+0x195/0x610 ? lookup_fast+0xe2/0xf0 path_lookupat+0x64/0x140 filename_lookup+0xc2/0x140 ? __create_object+0x299/0x380 ? kmem_cache_alloc+0x119/0x220 ? user_path_at_empty+0x31/0x50 user_path_at_empty+0x31/0x50 __x64_sys_chdir+0x2a/0xd0 ? exit_to_user_mode_prepare+0xca/0x100 do_syscall_64+0x42/0x90 entry_SYSCALL_64_after_hwframe+0x72/0xdc This fix adds an inline cifs_dfs_d_automount() {return -EREMOTE} handler when CONFIG_CIFS_DFS_UPCALL is disabled. An alternative would be to avoid flagging S_AUTOMOUNT, etc. without CONFIG_CIFS_DFS_UPCALL. This approach was chosen as it provides more control over the error path.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • 25e195aa1e607f129ab912d29fcfc79239703307 to < 26a32a212bc540f4773cd6af8cf73e967d72569caffected
  • 25e195aa1e607f129ab912d29fcfc79239703307 to < b64305185b76f1d5145ce594ff48f3f0e70695bdaffected
  • 25e195aa1e607f129ab912d29fcfc79239703307 to < b7d854c33ab48e55fc233699bbefe39ec9bb5c05affected
  • 25e195aa1e607f129ab912d29fcfc79239703307 to < 1e144b68208e98fd4602c842a7149ba5f41d87fbaffected
  • 25e195aa1e607f129ab912d29fcfc79239703307 to < 179a88a8558bbf42991d361595281f3e45d7edfcaffected

Linux Linux

Default version status: affected

  • 5.7affected
  • 0 to < 5.7unaffected
  • 5.10.177 to ≤ 5.10.*unaffected
  • 5.15.106 to ≤ 5.15.*unaffected
  • 6.1.23 to ≤ 6.1.*unaffected
  • 6.2.10 to ≤ 6.2.*unaffected
  • 6.3 to ≤ *unaffected

References