Bcrypt Password Hashing Silently Ignores Characters Beyond 72 Bytes, Breaking Verification Expectations
The bcrypt password hashing algorithm silently truncates inputs after the first 72 bytes, causing any characters beyond that limit to be ignored during both hashing and verification. This behavior has existed since the algorithm's introduction in 1999 and remains unchanged to preserve hash compatibility.
Developers discovered the issue when importing accounts from legacy systems. Passwords longer than 72 bytes verified successfully even when they differed in the ignored tail, leading to unexpected authentication results. Tests in PHP using PASSWORD_BCRYPT confirmed that a 72-character string and a 100-character string of the same prefix produce matching verification outcomes.
The root cause lies in Blowfish's P-table, which holds exactly 18 subkeys of 4 bytes each. The original specification fixed this 72-byte boundary, and any excess data is never fed into the key expansion function. Multibyte characters exacerbate the problem: 36 Cyrillic characters reach the limit, while 37 or more are truncated.
Practical risks appear in password managers that store full-length strings, during database migrations between libraries with differing truncation rules, and in corporate environments using long static prefixes. Python's bcrypt package version 4.x now raises an explicit error for inputs over 72 bytes, forcing developers to handle truncation manually or upgrade validation logic.
Mitigations include adding consistent 72-byte length checks on registration and login forms, pre-hashing passwords with SHA-256 encoded in base64 before passing to bcrypt, or migrating to algorithms without length limits such as Argon2id or scrypt. Systems should also audit all code paths that call the hashing function to ensure uniform enforcement.
Related articles
Apple Releases iOS 27.2 and iPadOS 27.2, Patching 163 Vulnerabilities Including Exploited Flaws in Older Versions
Apple has issued security updates for iOS and iPadOS, addressing a wide range of vulnerabilities across current and legacy operating systems. The iOS 27.2 and iPadOS 27.2 releases fix 163 CVEs affecting WebKit, the kernel, and image processing components. Older branches received targeted patches, with iOS 26.7.2 resolving 134 issues and iOS 18.7.11 addressing three vulnerabilities that include an actively exploited flaw. Specific fixes cover remote code execution risks in WebKit and ImageIO, plus sandbox bypasses. The updates were published on October 26, 2026, and apply to both iPhone and iPad devices. Apple also published detailed security content advisories for each branch.
CISA Adds PHP2Shell Flaws CVE-2026-109618 and CVE-2026-109619 to KEV Catalog After Confirmed Exploitation
The U.S. Cybersecurity and Infrastructure Security Agency has confirmed active exploitation of two remotely exploitable vulnerabilities in PHP collectively known as PHP2Shell. CVE-2026-109618 stems from improper handling during memory exhaustion, while CVE-2026-109619 involves use-after-free issues in internal state management. Both flaws allow unauthenticated remote code execution and pose elevated risk to any PHP environment processing external requests such as web servers. PHP development teams released patches on October 21 for supported branches including PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35, along with source-level fixes for end-of-life versions 7.4, 8.0 and 8.1. CISA has set a three-day remediation deadline of October 29 for U.S. federal agencies and requires verification that systems have not been compromised.
Security Week 2644: Active Exploitation of PHP2Shell Vulnerabilities Confirmed
PHP developers released patches for two critical vulnerabilities collectively known as PHP2Shell on October 20, affecting PHP 8.2 through 8.5 as well as older branches. The flaws allow unauthenticated remote code execution on affected servers, which power approximately 70 percent of websites. Despite expectations of immediate exploitation, confirmed attacks with working exploits only began on October 25. CrowdStrike noted technical difficulties in weaponizing the issues in real-world environments. Only one-fifth of top Russian websites had applied the fixes by October 25. Additional incidents included compromised eMudhra certificates, a critical GitLab flaw, and a 16-year-old Broadcom router vulnerability.
Positive Technologies Offers Up to 500,000 Rubles for Bypassing PT Application Firewall
Positive Technologies has expanded its Standoff Bug Bounty program to include rewards for bypassing its web application firewalls. Researchers can earn between 150,000 and 500,000 rubles for demonstrating practical bypasses against PT Application Firewall PRO and PT Application Firewall Cloud. The program targets the core protective mechanisms, including traffic filtering, attack detection rules, and the management layer used by administrators. Submissions must include reproducible attack scenarios that show how malicious requests can pass through undetected, rather than relying on scanner reports or theoretical findings. Reward amounts vary by severity and confirmed business impact, with critical issues in the PRO version paying up to 500,000 rubles. The company plans to use validated findings to strengthen detection rules and improve overall product resilience.