CVE-2026-63887·Kernel vulnerability
In the Linux kernel, the following vulnerability has been resolved: scsi: target: iscsi: Bound iscsi_encode_text_output() appends to rsp_buf iscsi_encode_text_output() concatenates "key=value\0" records into login->rsp_buf, an 8192-byte kzalloc(MAX_KEY_VALUE_PAIRS) buffer allocated in iscsit_alloc_login_setup_buffer(). The three sprintf() call sites in this function (lines 1398, 1411, 1424 in v7.1-rc2) never check the remaining buffer capacity: *length += sprintf(output_buf, "%s=%s", er->key, er->value); *length += 1; output_buf = textbuf + *length; The 8192-byte ceiling at iscsi_target_check_login_request() bounds the *input* Login PDU payload, but a single PDU can carry up to 2048 minimal four-byte "a=b\0" pairs, each unknown key expanding to a 16-byte "a=NotUnderstood\0" output record via iscsi_add_notunderstood_response(). 2048 * 16 = 32 KiB of output into an 8 KiB buffer, producing a ~24 KiB heap overrun in the kmalloc-8k slab. The fix introduces a static iscsi_encode_text_record() helper that uses snprintf() with a per-call bounds check against the remaining buffer, and threads a u32 textbuf_size parameter through iscsi_encode_text_output(). Both call sites in iscsi_target_handle_csg_zero() (PHASE_SECURITY) and iscsi_target_handle_csg_one() (PHASE_OPERATIONAL) pass MAX_KEY_VALUE_PAIRS. On overflow the encoder logs the condition, calls iscsi_release_extra_responses() to drop queued records, and returns -1; both caller sites now emit ISCSI_STATUS_CLS_INITIATOR_ERR / ISCSI_LOGIN_STATUS_INIT_ERR via iscsit_tx_login_rsp() before returning, so the initiator sees an explicit failed-login response rather than a silent connection drop. (Prior to this patch only the PHASE_OPERATIONAL caller did that; the PHASE_SECURITY caller is converted to the same shape.)
- Severity
- critical
- Software
- Kernel
- Fixed in
- 7.0.12
- Published
How likely is exploitation
FIRST's Exploit Prediction Scoring System puts the probability of this CVE being exploited in the next 30 days at 0.78% — higher than 55% of all published CVEs. EPSS is an independent forecast of exploitation, not a severity rating: it says nothing about how much damage a successful attack does, which is what a CVSS score measures.
Read the two together. CVE-2026-63887 scores 9.8 on CVSS, so a successful attack would be serious — but at 0.78%, almost nobody is currently attempting it. That is a different situation from a flaw under mass exploitation, and it is usually the difference between patching on your next maintenance window and patching tonight.
Affected versions
From: 6.19
Until: 7.0.12
Fixed in: 7.0.12
How to fix this CVE
Update your Linux kernel to version 7.0.12 or later to patch a critical heap buffer overflow in the iSCSI target login handler. This vulnerability allows remote attackers to trigger kernel memory corruption during iSCSI login negotiation. Apply the patch immediately to systems running vulnerable kernel versions 6.19 through 7.0.11.
sudo dnf update kernel kernel-develDefensia detects this vulnerability
How to check if you are affected
- Step 1: Check your current kernel version with `uname -r` and confirm if it falls between 6.19 and 7.0.11
- Step 2: Verify iSCSI target support is enabled: check if `grep -i iscsi /boot/config-$(uname -r)` shows CONFIG_ISCSI_TARGET=y or is compiled as a module with `lsmod | grep iscsi_target`
- Step 3: Monitor kernel logs for heap corruption indicators: `dmesg | grep -i 'heap overflow\|slab corruption\|kasan\|AddressSanitizer' | tail -20`
- Step 4: After patching, confirm kernel was updated with `uname -r` and verify it shows 7.0.12 or later, then reboot if necessary
FAQ
What is CVE-2026-63887?
CVE-2026-63887 is a critical heap buffer overflow in the Linux kernel's iSCSI target login handler that occurs when processing malformed login PDUs with unknown keys. An attacker can overflow the 8KB response buffer by crafting multiple unrecognized key-value pairs that expand into 16-byte "NotUnderstood" records, potentially achieving kernel memory corruption and denial of service.
Is CVE-2026-63887 being actively exploited?
No, according to CISA's Known Exploited Vulnerabilities (KEV) catalog, this vulnerability is not currently listed as actively exploited in the wild, and no public exploit code is available.
What versions of Kernel are affected by CVE-2026-63887?
Linux kernel versions 6.19 through 7.0.11 are vulnerable. The fix is included in kernel 7.0.12 and later releases.
How do I check if my server is vulnerable to CVE-2026-63887?
Run `uname -r` to display your kernel version, then check if it is between 6.19 and 7.0.11. Additionally, verify iSCSI target support with `grep CONFIG_ISCSI_TARGET /boot/config-$(uname -r)` or `lsmod | grep iscsi_target`.
Does Defensia detect CVE-2026-63887?
Yes — Defensia's CVE advisory scanner compares installed kernel package versions against the NVD database. If a vulnerable kernel version is running on a monitored server, CVE-2026-63887 will appear in your dashboard with remediation steps and prioritization based on iSCSI target exposure.
Related Kernel CVEs
References
- https://git.kernel.org/stable/c/26e4a304b7e6f1338c675d527608d32549c091db
- https://git.kernel.org/stable/c/30bf335e8fe170322080ee001f05ca29c50680b3
- https://git.kernel.org/stable/c/4e9f0c4a645c995bc75c06c7b3644254ffb4c76b
- https://git.kernel.org/stable/c/594a40360012ce5f94c715d5e3b20fa3af7d525a
- https://git.kernel.org/stable/c/b19382dfc6e7dee6d3859ba44b6ca29e97a51627
Track CVEs across your fleet automatically
Defensia scans your Linux servers and tells you exactly which ones are running vulnerable versions — including CVE-2026-63887. Free for 1 server.
Get started free