0x00 前言
Java是一门面向对象的编程语言,由Sun公司于1995年正式发布,其设计理念源于对C语言的改进,摒弃了多继承和指针等复杂概念,实现了功能强大与简单易用的结合。作为静态面向对象编程语言的代表,Java通过JVM(Java虚拟机)实现跨平台运行,具备分布式、健壮性、安全性、多线程等特性,支持桌面应用、Web应用和嵌入式系统开发。
0x01 漏洞描述
在Java中,char类型使用16位无符号整数表示,采用UTF-16编码,可容纳从0x0000到0xFFFF的Unicode字符。而byte类型仅使用8位,范围仅为-128到127。
当代码中出现(byte) ch、ch & 0xFF或OutputStream.write(ch)等操作时,Java并不会进行字符编码转换,而是简单粗暴地丢弃高8位,只保留低8位。
这些被丢弃的高位数据,就是所谓的“幽灵比特位”(Ghost Bits)。以汉字“陪”为例,其Unicode码点为U+966A,十六进制表示为0x966A。当发生窄化转换时,高8位0x96被直接丢弃,低8位0x6A被保留,而0x6A正是ASCII字母j的编码。
同理,“阮”(U+962E)的低8位是0x2E,对应ASCII中的点号.;“瘍”(U+760D)的低8位是0x0D,对应回车符\r;“䀀”(U+4C00)的低8位是0x40,对应@符号。
对于每一个危险ASCII字符,攻击者理论上拥有多达255个不同的Unicode字符可供选择,这构成了一个庞大的攻击武器库。
0x02 CVE编号
无
0x03 影响版本

(图片来源于网络)
0x04 漏洞详情
WAF/IDS 全面绕过:攻击者通过Ghost Bits变形Payload可绕过绝大多数现有基于规则的WAF检测,使已有安全防护形同虚设。
https://i.blackhat.com/Asia-26/Presentations/Asia-26-Bai-Cast-Attack-Ghost-Bits-4.23.pdf

0x05 参考链接
https://i.blackhat.com/Asia-26/Presentations/Asia-26-Bai-Cast-Attack-Ghost-Bits-4.23.pdf
推荐阅读:
CVE-2026-41940|cPanel/WHM登录流程认证绕过漏洞(POC)
CVE-2026-34486|Apache Tomcat远程代码执行漏洞(POC)
CVE-2026-33439|OpenAM反序列化远程代码执行(POC)
Ps:国内外安全热点分享,欢迎大家分享、转载,请保证文章的完整性。文章中出现敏感信息和侵权内容,请联系作者删除信息。信息安全任重道远,感谢您的支持

!!!