CVE-2026-63890

scsi: fcoe: Reject FIP descriptors with zero fip_dlen in CVL walker

State
Published
Severity
Not scored
Published
Jul 19, 2026
Updated
Jul 19, 2026
Reserved
Jul 19, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

scsi: fcoe: Reject FIP descriptors with zero fip_dlen in CVL walker

drivers/scsi/fcoe/fcoe_ctlr.c::fcoe_ctlr_recv_clr_vlink() advanced the descriptor cursor by an attacker-supplied fip_dlen without ever requiring dlen >= sizeof(struct fip_desc) in the default branch. The named descriptor cases (FIP_DT_MAC, FIP_DT_NAME, FIP_DT_VN_ID) checked their per-type minimum lengths, but a FIP_DT_NON_CRITICAL descriptor (fip_dtype >= 128, which the standard requires receivers to silently ignore) skipped that check entirely.

An unauthenticated L2 peer on the FCoE control VLAN could hang fcoe_ctlr_recv_work on an fcoe, qedf, or bnx2fc initiator indefinitely by emitting one FIP CVL frame whose single descriptor had fip_dtype == FIP_DT_NON_CRITICAL and fip_dlen == 0: the cursor advanced zero bytes per iteration and the loop condition rlen >= sizeof(*desc) stayed true forever, blocking every subsequent FIP frame on that controller.

Tighten the outer dlen guard to also reject dlen < sizeof(struct fip_desc), so a malformed descriptor whose length cannot even cover the descriptor header is rejected before the switch. This is the same lower-bound the named cases already apply and is the minimum scope that closes the loop.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 97c8389d54b9665c38105ea72a428a44b97ff2f6 to before d179949d2175d2857d1c3a275a22bea58bcc5d36Affected
  • 97c8389d54b9665c38105ea72a428a44b97ff2f6 to before fda976f7390bb5d1e9b84ef11ebb17323038e0c6Affected
  • 97c8389d54b9665c38105ea72a428a44b97ff2f6 to before 80a0cd307205236ca28aa49bc553f58edcb9bf3aAffected
  • 97c8389d54b9665c38105ea72a428a44b97ff2f6 to before 0e3c6e5a8fc15a74dfb1e0c1df9f1da73600a81aAffected
  • 97c8389d54b9665c38105ea72a428a44b97ff2f6 to before 549859a1131052b07dff11a448e9f3221a40f260Affected
  • 97c8389d54b9665c38105ea72a428a44b97ff2f6 to before 14dd80a20a72ce334adcc2d67402360527065948Affected
  • 97c8389d54b9665c38105ea72a428a44b97ff2f6 to before d537d29d51c8b808469e5adacf3e5a0092700738Affected
  • 97c8389d54b9665c38105ea72a428a44b97ff2f6 to before 9eed1bd59937e6828b00d2f2dfef631d964f3636Affected
LinuxLinux
  • 2.6.30Affected
  • before 2.6.30Not affected
  • 5.10.259 through 5.10.*Not affected
  • 5.15.210 through 5.15.*Not affected
  • 6.1.176 through 6.1.*Not affected
  • 6.6.143 through 6.6.*Not affected
  • 6.12.93 through 6.12.*Not affected
  • 6.18.35 through 6.18.*Not affected
  • 7.0.12 through 7.0.*Not affected
  • 7.1 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.