scsi: scsi_transport_fc: Widen FPIN pname walker counter to u32
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.15.210, 6.1.176, 6.6.143, 6.12.93, 6.18.35, and 1 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: scsi: scsi_transport_fc: Widen FPIN pname walker counter to u32 An adjacent Fibre Channel fabric actor that can deliver an FPIN ELS frame to an lpfc or qla2xxx Linux initiator can trigger a non-return in the generic FC transport. This is not a local userspace or IP network path; the attacker must be able to inject fabric traffic, for example as a compromised switch or fabric controller, or as a same-zone N_Port on a fabric that permits source spoofing. The Link-Integrity and Peer-Congestion FPIN walkers used a u8 loop counter against the 32-bit on-wire pname_count field, and did not bound pname_count by the descriptor body already validated by the TLV walker. A pname_count of 256 therefore wraps the counter and keeps the loop condition true indefinitely. Factor the shared pname_list[] walk into one helper, widen the counter to u32, and clamp pname_count against the entries that fit in the descriptor body before iterating.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 3dcfe0de5a9752e646a61f4ce513ac059960c7c3 · fixed in 07776b7779c9426982c1ad74aad91bd531593790; From 3dcfe0de5a9752e646a61f4ce513ac059960c7c3 · fixed in 29f126f09e34a425b376b3646c89aa7cc18b142c; From 3dcfe0de5a9752e646a61f4ce513ac059960c7c3 · fixed in 163bd704d7515c3df6c2e03bcba93d1db79edbff; From 3dcfe0de5a9752e646a61f4ce513ac059960c7c3 · fixed in ee57b89e5da9fffbe0d26647e4ff0750dacb9943; From 3dcfe0de5a9752e646a61f4ce513ac059960c7c3 · fixed in 35461d23744175a78b6280293892cca357c22793; From 3dcfe0de5a9752e646a61f4ce513ac059960c7c3 · fixed in bdff76dff6ec23d6fe35812fa33e5c4ce2cdb770; From 3dcfe0de5a9752e646a61f4ce513ac059960c7c3 · fixed in a9a39233ec1fc9f97ea1340a4d09bb7ec2be5153
- Linux Linux
5.11
- KernelLinux
From 5.11.0 · fixed in 5.15.210; From 5.16.0 · fixed in 6.1.176; From 6.2.0 · fixed in 6.6.143; From 6.7.0 · fixed in 6.12.93; From 6.13.0 · fixed in 6.18.35; From 6.19.0 · fixed in 7.0.12
References 7
git.kernel.org
- stable/c/07776b7779c9426982c1ad74aad91bd531593790
- stable/c/29f126f09e34a425b376b3646c89aa7cc18b142c
- stable/c/163bd704d7515c3df6c2e03bcba93d1db79edbff
- stable/c/ee57b89e5da9fffbe0d26647e4ff0750dacb9943
- stable/c/35461d23744175a78b6280293892cca357c22793
- stable/c/bdff76dff6ec23d6fe35812fa33e5c4ce2cdb770
- stable/c/a9a39233ec1fc9f97ea1340a4d09bb7ec2be5153