首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >幽灵比特位(Ghost Bits):Java生态的隐形威胁

幽灵比特位(Ghost Bits):Java生态的隐形威胁

作者头像
信安百科
发布2026-05-08 19:48:04
发布2026-05-08 19:48:04
30
举报
文章被收录于专栏:信安百科信安百科

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:国内外安全热点分享,欢迎大家分享、转载,请保证文章的完整性。文章中出现敏感信息和侵权内容,请联系作者删除信息。信息安全任重道远,感谢您的支持

!!!


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安百科 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档