Skip to content
VulniPulse
High7.0Red Hat Linux

High [CVE-2026-63886] Validate CHAP_R length before base64 decode

This high-severity Red Hat Linux advisory covers CVE-2026-63886 affecting Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 8, Red Hat Enterprise Linux 9.

CVE-2026-63886 Published Jul 19, 2026Updated by vendor Jul 19, 2026
Affected products & platforms
Red Hat LinuxLinux Kernel
Open vendor advisory

Android app · Google Play

Monitor future Red Hat Linux CVEs from your phone.

Choose a whole vendor or a precise platform, then receive matching security advisories by phone notification, email, or both. Coverage follows 32 official vendor sources and 160+ reviewed platform categories.

Matching phone alertsOptional email delivery

Summary

In the Linux kernel, the following vulnerability has been resolved: scsi: target: iscsi: Validate CHAP_R length before base64 decode chap_server_compute_hash() allocates client_digest as kzalloc(chap->digest_size) and then, for BASE64-encoded responses, passes chap_r directly to chap_base64_decode() without checking whether the input length could produce more than digest_size bytes of output. chap_base64_decode() writes to the destination unconditionally as long as there is input to consume.

With MAX_RESPONSE_LENGTH set to 128 and the "0b" prefix stripped by extract_param(), up to 127 base64 characters can reach the decoder. 127 characters decode to 95 bytes.

For SHA-256 (digest_size=32) this overflows client_digest by 63 bytes; for MD5 (digest_size=16) the overflow is 79 bytes. The length check at line 344 fires after the write has already happened.

The HEX branch in the same switch statement already validates the length up front. Apply the same approach to the BASE64 branch: strip trailing base64 padding characters, then reject any input whose data length exceeds DIV_ROUND_UP(digest_size * 4, 3) before calling the decoder.

Stripping trailing '=' before the comparison handles both padded and unpadded encodings. chap_base64_decode() already returns early on '=', so the full original string is still passed to the decoder unchanged.

Affected versions

No affected-version range was extracted from the source record. The vendor advisory is authoritative — check it before change work.

Official advisory · high-confidence parse· fetched 6 days ago·verify at source

Fixed versions
  • kernel-0:6.12.0-211.49.1.el10_2
  • kernel-rt-0:4.18.0-553.158.1.rt7.499.el8_10
  • kernel-0:4.18.0-553.158.1.el8_10
  • RHSA-2026:57251
  • RHSA-2026:59737
  • RHSA-2026:59821

Official advisory · high-confidence parse· fetched 6 days ago·verify at source

Mitigation

Upgrade to a fixed release: kernel-0:6.12.0-211.49.1.el10_2, kernel-rt-0:4.18.0-553.158.1.rt7.499.el8_10, kernel-0:4.18.0-553.158.1.el8_10, RHSA-2026:57251, RHSA-2026:59737, RHSA-2026:59821. That is the remediation for this advisory.

The vendor advisory may list additional interim mitigations or workarounds not captured here — review it before change work.

Official advisory · high-confidence parse· fetched 6 days ago·verify at source

Discussion(0)

No comments yet. Share field notes, upgrade gotchas, or questions — verify against the vendor advisory before acting on community advice.

Sign in to join the discussion.