{"id":"CVE-2026-63889","state":"PUBLISHED","title":"scsi: scsi_transport_fc: Widen FPIN pname walker counter to u32","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: scsi_transport_fc: Widen FPIN pname walker counter to u32\n\nAn adjacent Fibre Channel fabric actor that can deliver an FPIN ELS\nframe to an lpfc or qla2xxx Linux initiator can trigger a non-return in\nthe generic FC transport. This is not a local userspace or IP network\npath; the attacker must be able to inject fabric traffic, for example as\na compromised switch or fabric controller, or as a same-zone N_Port on a\nfabric that permits source spoofing.\n\nThe Link-Integrity and Peer-Congestion FPIN walkers used a u8 loop\ncounter against the 32-bit on-wire pname_count field, and did not bound\npname_count by the descriptor body already validated by the TLV walker.\nA pname_count of 256 therefore wraps the counter and keeps the loop\ncondition true indefinitely.\n\nFactor the shared pname_list[] walk into one helper, widen the counter\nto u32, and clamp pname_count against the entries that fit in the\ndescriptor body before iterating.","publishedAt":"2026-07-19T14:55:01.515Z","updatedAt":"2026-10-19T20:17:54.988Z","severity":{"score":8.1,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"3dcfe0de5a9752e646a61f4ce513ac059960c7c3","status":"affected","lessThan":"07776b7779c9426982c1ad74aad91bd531593790","versionType":"git"},{"version":"3dcfe0de5a9752e646a61f4ce513ac059960c7c3","status":"affected","lessThan":"29f126f09e34a425b376b3646c89aa7cc18b142c","versionType":"git"},{"version":"3dcfe0de5a9752e646a61f4ce513ac059960c7c3","status":"affected","lessThan":"163bd704d7515c3df6c2e03bcba93d1db79edbff","versionType":"git"},{"version":"3dcfe0de5a9752e646a61f4ce513ac059960c7c3","status":"affected","lessThan":"ee57b89e5da9fffbe0d26647e4ff0750dacb9943","versionType":"git"},{"version":"3dcfe0de5a9752e646a61f4ce513ac059960c7c3","status":"affected","lessThan":"35461d23744175a78b6280293892cca357c22793","versionType":"git"},{"version":"3dcfe0de5a9752e646a61f4ce513ac059960c7c3","status":"affected","lessThan":"bdff76dff6ec23d6fe35812fa33e5c4ce2cdb770","versionType":"git"},{"version":"3dcfe0de5a9752e646a61f4ce513ac059960c7c3","status":"affected","lessThan":"a9a39233ec1fc9f97ea1340a4d09bb7ec2be5153","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/scsi/scsi_transport_fc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.11","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.11","versionType":"semver"},{"version":"5.15.210","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.176","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.143","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.93","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.35","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.12","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/scsi/scsi_transport_fc.c"]}],"references":["https://git.kernel.org/stable/c/07776b7779c9426982c1ad74aad91bd531593790","https://git.kernel.org/stable/c/29f126f09e34a425b376b3646c89aa7cc18b142c","https://git.kernel.org/stable/c/163bd704d7515c3df6c2e03bcba93d1db79edbff","https://git.kernel.org/stable/c/ee57b89e5da9fffbe0d26647e4ff0750dacb9943","https://git.kernel.org/stable/c/35461d23744175a78b6280293892cca357c22793","https://git.kernel.org/stable/c/bdff76dff6ec23d6fe35812fa33e5c4ce2cdb770","https://git.kernel.org/stable/c/a9a39233ec1fc9f97ea1340a4d09bb7ec2be5153"],"weaknesses":["CWE-190"],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/63xxx/CVE-2026-63889.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-63889","state":"PUBLISHED","datePublished":"2026-07-19T14:55:01.515Z","dateUpdated":"2026-10-19T20:17:54.988Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T07:54:57.018Z"},"containers":{"cna":{"title":"scsi: scsi_transport_fc: Widen FPIN pname walker counter to u32","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: scsi_transport_fc: Widen FPIN pname walker counter to u32\n\nAn adjacent Fibre Channel fabric actor that can deliver an FPIN ELS\nframe to an lpfc or qla2xxx Linux initiator can trigger a non-return in\nthe generic FC transport. This is not a local userspace or IP network\npath; the attacker must be able to inject fabric traffic, for example as\na compromised switch or fabric controller, or as a same-zone N_Port on a\nfabric that permits source spoofing.\n\nThe Link-Integrity and Peer-Congestion FPIN walkers used a u8 loop\ncounter against the 32-bit on-wire pname_count field, and did not bound\npname_count by the descriptor body already validated by the TLV walker.\nA pname_count of 256 therefore wraps the counter and keeps the loop\ncondition true indefinitely.\n\nFactor the shared pname_list[] walk into one helper, widen the counter\nto u32, and clamp pname_count against the entries that fit in the\ndescriptor body before iterating."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"3dcfe0de5a9752e646a61f4ce513ac059960c7c3","status":"affected","lessThan":"07776b7779c9426982c1ad74aad91bd531593790","versionType":"git"},{"version":"3dcfe0de5a9752e646a61f4ce513ac059960c7c3","status":"affected","lessThan":"29f126f09e34a425b376b3646c89aa7cc18b142c","versionType":"git"},{"version":"3dcfe0de5a9752e646a61f4ce513ac059960c7c3","status":"affected","lessThan":"163bd704d7515c3df6c2e03bcba93d1db79edbff","versionType":"git"},{"version":"3dcfe0de5a9752e646a61f4ce513ac059960c7c3","status":"affected","lessThan":"ee57b89e5da9fffbe0d26647e4ff0750dacb9943","versionType":"git"},{"version":"3dcfe0de5a9752e646a61f4ce513ac059960c7c3","status":"affected","lessThan":"35461d23744175a78b6280293892cca357c22793","versionType":"git"},{"version":"3dcfe0de5a9752e646a61f4ce513ac059960c7c3","status":"affected","lessThan":"bdff76dff6ec23d6fe35812fa33e5c4ce2cdb770","versionType":"git"},{"version":"3dcfe0de5a9752e646a61f4ce513ac059960c7c3","status":"affected","lessThan":"a9a39233ec1fc9f97ea1340a4d09bb7ec2be5153","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/scsi/scsi_transport_fc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.11","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.11","versionType":"semver"},{"version":"5.15.210","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.176","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.143","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.93","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.35","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.12","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/scsi/scsi_transport_fc.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/07776b7779c9426982c1ad74aad91bd531593790"},{"url":"https://git.kernel.org/stable/c/29f126f09e34a425b376b3646c89aa7cc18b142c"},{"url":"https://git.kernel.org/stable/c/163bd704d7515c3df6c2e03bcba93d1db79edbff"},{"url":"https://git.kernel.org/stable/c/ee57b89e5da9fffbe0d26647e4ff0750dacb9943"},{"url":"https://git.kernel.org/stable/c/35461d23744175a78b6280293892cca357c22793"},{"url":"https://git.kernel.org/stable/c/bdff76dff6ec23d6fe35812fa33e5c4ce2cdb770"},{"url":"https://git.kernel.org/stable/c/a9a39233ec1fc9f97ea1340a4d09bb7ec2be5153"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H","baseScore":8.1,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:A - Exploitation requires injecting a crafted FPIN ELS frame onto the Fibre Channel fabric from an adjacent fabric actor (compromised switch, fabric controller, or same-zone N_Port), not via IP or local syscalls.\nAC:L - Once on the fabric, an attacker can reliably trigger the bug by sending an FPIN with a Link-Integrity or Peer-Congestion descriptor containing pname_count=256 and a minimally valid TLV length; no race or special memory layout is required.\nPR:N - The attacker needs no privileges on the victim Linux host; FPIN ELS frames are processed without authentication once the HBA has completed fabric discovery.\nUI:N - No victim user action is required; the malicious FPIN is processed automatically when received by the HBA firmware and driver stack.\nS:U - Impact is confined to kernel availability and information disclosure on the affected host; it does not cross a security boundary such as VM escape or sandbox breakout.\nC:H - The unbounded loop reads pname_list[i] beyond the validated descriptor body via out-of-bounds kernel memory reads on every iteration, enabling information disclosure from adjacent kernel memory.\nI:N - The bug causes only counter increments in FPIN statistics structures on matched rports; there is no memory corruption or write primitive that could modify arbitrary data or achieve code execution.\nA:H - The infinite loop pins a CPU in kernel context (potentially from interrupt/DPC paths) and repeatedly acquires host_lock via fc_find_rport_by_wwpn(), causing soft lockup and complete loss of host availability."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:36:58.639Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.11","versionEndExcluding":"5.15.210"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.11","versionEndExcluding":"6.1.176"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.11","versionEndExcluding":"6.6.143"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.11","versionEndExcluding":"6.12.93"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.11","versionEndExcluding":"6.18.35"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.11","versionEndExcluding":"7.0.12"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.11","versionEndExcluding":"7.1"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-63889","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2026-10-16T15:33:03.386900Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-190","lang":"en","type":"CWE","description":"CWE-190 Integer Overflow or Wraparound"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T20:17:54.988Z"}}]}}}