{"api_version":"1","generated_at":"2026-04-25T14:02:09+00:00","cve":"CVE-2026-31642","urls":{"html":"https://cve.report/CVE-2026-31642","api":"https://cve.report/api/cve/CVE-2026-31642.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-31642","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-31642"},"summary":{"title":"rxrpc: Fix call removal to use RCU safe deletion","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nrxrpc: Fix call removal to use RCU safe deletion\n\nFix rxrpc call removal from the rxnet->calls list to use list_del_rcu()\nrather than list_del_init() to prevent stuffing up reading\n/proc/net/rxrpc/calls from potentially getting into an infinite loop.\n\nThis, however, means that list_empty() no longer works on an entry that's\nbeen deleted from the list, making it harder to detect prior deletion.  Fix\nthis by:\n\nFirstly, make rxrpc_destroy_all_calls() only dump the first ten calls that\nare unexpectedly still on the list.  Limiting the number of steps means\nthere's no need to call cond_resched() or to remove calls from the list\nhere, thereby eliminating the need for rxrpc_put_call() to check for that.\n\nrxrpc_put_call() can then be fixed to unconditionally delete the call from\nthe list as it is the only place that the deletion occurs.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-04-24 15:16:43","updated_at":"2026-04-24 17:51:40"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/3be718f659683ad89fad6f1eb66bee99727cae64","name":"https://git.kernel.org/stable/c/3be718f659683ad89fad6f1eb66bee99727cae64","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/93fc15be44a35b8e3c58d0238ac0d9b7c53465ff","name":"https://git.kernel.org/stable/c/93fc15be44a35b8e3c58d0238ac0d9b7c53465ff","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/c63abf25203b50243fe228090526f9dbf37727bd","name":"https://git.kernel.org/stable/c/c63abf25203b50243fe228090526f9dbf37727bd","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/146d4ab94cf129ee06cd467cb5c71368a6b5bad6","name":"https://git.kernel.org/stable/c/146d4ab94cf129ee06cd467cb5c71368a6b5bad6","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/ac5f54691be06a32246179d41be2d73598036deb","name":"https://git.kernel.org/stable/c/ac5f54691be06a32246179d41be2d73598036deb","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-31642","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-31642","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 2baec2c3f854d1f79c7bb28386484e144e864a14 93fc15be44a35b8e3c58d0238ac0d9b7c53465ff git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 2baec2c3f854d1f79c7bb28386484e144e864a14 c63abf25203b50243fe228090526f9dbf37727bd git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 2baec2c3f854d1f79c7bb28386484e144e864a14 3be718f659683ad89fad6f1eb66bee99727cae64 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 2baec2c3f854d1f79c7bb28386484e144e864a14 ac5f54691be06a32246179d41be2d73598036deb git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 2baec2c3f854d1f79c7bb28386484e144e864a14 146d4ab94cf129ee06cd467cb5c71368a6b5bad6 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4.13","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 4.13 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.135 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.82 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.23 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.19.13 6.19.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.0 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["include/trace/events/rxrpc.h","net/rxrpc/call_object.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"93fc15be44a35b8e3c58d0238ac0d9b7c53465ff","status":"affected","version":"2baec2c3f854d1f79c7bb28386484e144e864a14","versionType":"git"},{"lessThan":"c63abf25203b50243fe228090526f9dbf37727bd","status":"affected","version":"2baec2c3f854d1f79c7bb28386484e144e864a14","versionType":"git"},{"lessThan":"3be718f659683ad89fad6f1eb66bee99727cae64","status":"affected","version":"2baec2c3f854d1f79c7bb28386484e144e864a14","versionType":"git"},{"lessThan":"ac5f54691be06a32246179d41be2d73598036deb","status":"affected","version":"2baec2c3f854d1f79c7bb28386484e144e864a14","versionType":"git"},{"lessThan":"146d4ab94cf129ee06cd467cb5c71368a6b5bad6","status":"affected","version":"2baec2c3f854d1f79c7bb28386484e144e864a14","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["include/trace/events/rxrpc.h","net/rxrpc/call_object.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"4.13"},{"lessThan":"4.13","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.135","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.82","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.23","versionType":"semver"},{"lessThanOrEqual":"6.19.*","status":"unaffected","version":"6.19.13","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.0","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.135","versionStartIncluding":"4.13","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.82","versionStartIncluding":"4.13","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.23","versionStartIncluding":"4.13","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.19.13","versionStartIncluding":"4.13","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.0","versionStartIncluding":"4.13","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nrxrpc: Fix call removal to use RCU safe deletion\n\nFix rxrpc call removal from the rxnet->calls list to use list_del_rcu()\nrather than list_del_init() to prevent stuffing up reading\n/proc/net/rxrpc/calls from potentially getting into an infinite loop.\n\nThis, however, means that list_empty() no longer works on an entry that's\nbeen deleted from the list, making it harder to detect prior deletion.  Fix\nthis by:\n\nFirstly, make rxrpc_destroy_all_calls() only dump the first ten calls that\nare unexpectedly still on the list.  Limiting the number of steps means\nthere's no need to call cond_resched() or to remove calls from the list\nhere, thereby eliminating the need for rxrpc_put_call() to check for that.\n\nrxrpc_put_call() can then be fixed to unconditionally delete the call from\nthe list as it is the only place that the deletion occurs."}],"providerMetadata":{"dateUpdated":"2026-04-24T14:44:56.888Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/93fc15be44a35b8e3c58d0238ac0d9b7c53465ff"},{"url":"https://git.kernel.org/stable/c/c63abf25203b50243fe228090526f9dbf37727bd"},{"url":"https://git.kernel.org/stable/c/3be718f659683ad89fad6f1eb66bee99727cae64"},{"url":"https://git.kernel.org/stable/c/ac5f54691be06a32246179d41be2d73598036deb"},{"url":"https://git.kernel.org/stable/c/146d4ab94cf129ee06cd467cb5c71368a6b5bad6"}],"title":"rxrpc: Fix call removal to use RCU safe deletion","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-31642","datePublished":"2026-04-24T14:44:56.888Z","dateReserved":"2026-03-09T15:48:24.127Z","dateUpdated":"2026-04-24T14:44:56.888Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-04-24 15:16:43","lastModifiedDate":"2026-04-24 17:51:40","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"31642","Ordinal":"1","Title":"rxrpc: Fix call removal to use RCU safe deletion","CVE":"CVE-2026-31642","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"31642","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nrxrpc: Fix call removal to use RCU safe deletion\n\nFix rxrpc call removal from the rxnet->calls list to use list_del_rcu()\nrather than list_del_init() to prevent stuffing up reading\n/proc/net/rxrpc/calls from potentially getting into an infinite loop.\n\nThis, however, means that list_empty() no longer works on an entry that's\nbeen deleted from the list, making it harder to detect prior deletion.  Fix\nthis by:\n\nFirstly, make rxrpc_destroy_all_calls() only dump the first ten calls that\nare unexpectedly still on the list.  Limiting the number of steps means\nthere's no need to call cond_resched() or to remove calls from the list\nhere, thereby eliminating the need for rxrpc_put_call() to check for that.\n\nrxrpc_put_call() can then be fixed to unconditionally delete the call from\nthe list as it is the only place that the deletion occurs.","Type":"Description","Title":"rxrpc: Fix call removal to use RCU safe deletion"}]}}}