
Java 是目前企业级应用中最广泛使用的编程语言之一,其生态内的 Spring、Tomcat、Jackson、fastjson 等框架和组件被全球数以亿计的系统所依赖。2026 年 4 月,在 Black Hat Asia 2026 大会上,安全研究员 Zhihui Chen(1ue)与安全研究员 Xinyu Bai(浅蓝)发表了题为《Cast Attack: A New Threat Posed by Ghost Bits in Java》的研究成果。
该研究揭示了 Java 生态中一个系统性、长期被忽视的底层编码缺陷——"Ghost Bits(幽灵比特位)",并证明攻击者可利用该缺陷对 WAF/IDS 等安全设备实现全面绕过,进而触发 SQL 注入、反序列化 RCE、文件上传、SMTP 注入、请求走私等多种高危攻击链。漏洞影响范围覆盖 Java 主流框架与中间件,利用门槛低,建议相关用户高度重视并尽快完成自查修复。
攻击描述
Description
01
缺陷成因
Java 的 char类型为 16 位(2 字节),而 byte类型仅为 8 位(1 字节)。当 Java 代码通过 (byte)ch、ch & 0xFF、baos.write(ch)、DataOutputStream#writeBytes()等方式将 char转换为 byte时,高 8 位会被静默丢弃,只保留低 8 位,这一丢失的高位数据即被称为"幽灵比特位(Ghost Bits)"。
以汉字「爻」(U+2F58)为例:
爻 → U+2F58 → 二进制:00101111 | 00111010
(byte) 转换后:高 8 位 0x2F 丢弃,低 8 位 0x3A → 'X'攻击者可利用这一特性,将攻击 Payload 中的关键 ASCII 字符替换为经过精心选取的 Unicode 字符(其低 8 位与原字符一致),使 WAF 看到的是无意义的 Unicode 字符序列,而后端 Java 服务解码时高位截断还原为原始攻击载荷,从而绕过基于字符串特征的安全检测。
研究人员在 GitHub 上搜索 Java 代码中典型的 Ghost Bits 写法((byte)ch、ch & 0xff、baos.write(ch)、writeBytes(...)),命中结果超过 8,100 条,证明此类缺陷在 Java 生态中极为普遍。
WAF/IDS 全面绕过:攻击者通过 Ghost Bits 变形 Payload 可绕过绝大多数现有基于规则的 WAF 检测,使已有安全防护形同虚设。
触发多类高危漏洞:
charToHex(ch & 255)截断,SQL 注入 Payload 隐写于 Unicode 字符中,WAF 无告警,后端还原并执行。\u/ \x转义均存在 Ghost Bits,可绕过 WAF 触发反序列化远程代码执行。RFC2231Utility处理文件名时截断高位,可将 .jsp伪装为非敏感 Unicode 字符,绕过 WAF 上传 Webshell。处置优先级:高
类型:WAF绕过/远程代码执行/注入
危害等级:高
触发方式:网络远程
权限认证要求:无需权限
系统配置要求:默认配置
用户交互要求:无需用户交互
利用成熟度:POC/EXP 已公开
修复复杂度:中
影响范围
Affects
02
以下组件已被确认受 Ghost Bits 影响:组件漏洞类型Apache Commons BCELWAF 绕过 / 反序列化 RCEJackson DatabindWAF 绕过 / SQL 注入FastjsonWAF 绕过 / 反序列化 RCEApache Tomcat文件上传绕过(Webshell)Spring FrameworkURL 解码绕过 / 路径穿越JettyURL 解码绕过 / CRLF 注入UndertowURL 解码绕过Vert.xURL 解码绕过Angus MailSMTP 注入Apache HttpClient ≤ 4.5.9HTTP 请求走私(HTTPCLIENT-1974/1978)ActiveJHTTP CRLF 注入Lettuce(Redis 客户端)Redis 命令注入Jodd路径穿越XMLWriterXML 标签注入受影响的真实 CVE 包括但不限于:GeoServer CVE-2024-36401、Spring4Shell CVE-2022-22965、Openfire CVE-2023-32315。解决方案 Solution
请关注上述各受影响组件的官方 Security Advisory,升级至已修复版本。重点关注:
(byte)ch、ch & 0xFF、baos.write(ch)、DataOutputStream#writeBytes()等写法,改为使用 String.getBytes(StandardCharsets.UTF_8)等明确指定编码的方式。漏洞复现Reproduction 时间线 Timeline 2026年4月 Black Hat Asia 2026 披露 Ghost Bits 攻击 2026年4月28日 长亭安全应急响应中心发布通告 参考资料: [1].Black Hat Asia 2026 议题:Cast Attack: A New Threat Posed by Ghost Bits in Java 作者:Xinyu Bai(@b1u3r / @iSafeBlue)、Zhihui Chen(@1ue1166323)、贡献者 Zongzheng Zheng(@chun_springX) [2].https://github.com/geoserver/geoserver/security/advisories/GHSA-6jj6-gm7p-fcvv [3].https://github.com/advisories/GHSA-gw42-f939-fhvm [4].https://spring.io/security/cve-2022-22965