Skip to content
CVE PROGRAM SOURCE RECORD7.5 High

CVE-2022-49065

SUNRPC: Fix the svc_deferred_event trace class

Description

In the Linux kernel, the following vulnerability has been resolved: SUNRPC: Fix the svc_deferred_event trace class Fix a NULL deref crash that occurs when an svc_rqst is deferred while the sunrpc tracing subsystem is enabled. svc_revisit() sets dr->xprt to NULL, so it can't be relied upon in the tracepoint to provide the remote's address. Unfortunately we can't revert the "svc_deferred_class" hunk in commit ece200ddd54b ("sunrpc: Save remote presentation address in svc_xprt for trace events") because there is now a specific check of event format specifiers for unsafe dereferences. The warning that check emits is: event svc_defer_recv has unsafe dereference of argument 1 A "%pISpc" format specifier with a "struct sockaddr *" is indeed flagged by this check. Instead, take the brute-force approach used by the svcrdma_qp_error tracepoint. Convert the dr::addr field into a presentation address in the TP_fast_assign() arm of the trace event, and store that as a string. This fix can be backported to -stable kernels. In the meantime, commit c6ced22997ad ("tracing: Update print fmt check to handle new __get_sockaddr() macro") is now in v5.18, so this wonky fix can be replaced with __sockaddr() and friends properly during the v5.19 merge window.

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

  • ece200ddd54b9ce840cfee554fb812560c545c7d to < 85ee17ca21cf92989e8c923e3ea4514c291e9d38affected
  • ece200ddd54b9ce840cfee554fb812560c545c7d to < 726ae7300fcc25fefa46d188cc07eb16dc908f9eaffected
  • ece200ddd54b9ce840cfee554fb812560c545c7d to < c2456f470eea3bd06574d988bf6089e7c3f4c5ccaffected
  • ece200ddd54b9ce840cfee554fb812560c545c7d to < 4d5004451ab2218eab94a30e1841462c9316ba19affected

Linux Linux

Default version status: affected

  • 4.17affected
  • 0 to < 4.17unaffected
  • 5.10.112 to ≤ 5.10.*unaffected
  • 5.15.35 to ≤ 5.15.*unaffected
  • 5.17.4 to ≤ 5.17.*unaffected
  • 5.18 to ≤ *unaffected

References