网易首页 > 网易号 > 正文 申请入驻

py-libp2p /sdp端点信任调用方:无上限请求体触发内存放大2倍DoS

0
分享至

py-libp2p是libp2p的Python实现,后者是支撑IPFS、Filecoin和以太坊类节点的点对点网络协议栈。我在为其WebRTC-Direct传输层工作时,发现并修复了一个内存放大型拒绝服务(DoS)漏洞——问题出在一个信任调用方的SDP端点上。

在加密传输建立之前,通信双方需要交换SDP offer/answer数据块。py-libp2p为此提供了一个极简的开发测试工具:一个手写的HTTP服务器(不依赖aiohttp),通过POST /sdp接收SDP offer,并将请求体交给offer处理器。漏洞就藏在这个工具的请求读取逻辑里。


问题出在哪

修复前的_aiortc_helpers.py中,处理器直接读取调用方提供的Content-Length,并精确缓冲那么多字节——没有任何上限。攻击者可以完全控制请求体大小,而readexactly()会绕过StreamReader默认的64 KiB流量控制限制,导致内存无节制增长。

更糟的是,body.decode()会创建第二份拷贝,处理器中的字符串操作又产生第三份。网络上的字节最终在内存中被放大约2倍,且没有天花板。此外,头部读取循环只设置了单行超时,攻击者可以无限发送头部行,循环永远不会计数。

这是握手前的未认证输入。任何能访问该端口的人都能触发。

发现过程

这个漏洞是在我自己的WebRTC PR(#1309)审查中被标记出来的。审查者留下一行注释:“将整个请求体读入内存且无上限,存在可用性风险。”这看起来像是个风格问题,但实际并非如此。握手前的输入本质上就是攻击者可控的,“无上限读取整个请求体”就是完整的攻击路径。

实测数据

我构建了一个复现工具,导入修复前(9506041)和修复后(759c75b)的真实run_signaling_server,发送恶意请求,并以20毫秒间隔采样RSS内存。在Python 3.11/aiortc 1.15沙箱中测得,内存放大比约为2倍。修复后的版本对请求体大小施加了上限,攻击者的放大效果被有效阻断。

这个案例说明,开发工具中的“临时”代码往往比正式代码更容易被忽视,而恰恰是这些代码可能成为攻击面。安全审查中看似不起眼的注释,有时指向的是真正的漏洞。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
上海市退休金划分5个参考档位,快来对照你属于哪一档

上海市退休金划分5个参考档位,快来对照你属于哪一档

娱乐的硬糖吖
2026-08-21 11:13:25
老人出现这4种表现,可能阳寿将近,子女要多留意

老人出现这4种表现,可能阳寿将近,子女要多留意

户外阿崭
2026-08-21 10:32:04
男子与同学聚会饮酒,未回应他人敬酒遭掌掴拳击,争执后猝死,家属起诉索赔114万,法院判了

男子与同学聚会饮酒,未回应他人敬酒遭掌掴拳击,争执后猝死,家属起诉索赔114万,法院判了

洪观新闻
2026-08-20 18:45:29
毛骨悚然!知名“美少女”死亡细节曝光

毛骨悚然!知名“美少女”死亡细节曝光

这里是美国
2026-08-19 18:30:23
朝鲜缺电远比越南严重,中国却始终不送电:一旦输电线搭过去,恐成无底洞烂账

朝鲜缺电远比越南严重,中国却始终不送电:一旦输电线搭过去,恐成无底洞烂账

z千年历史老号
2026-08-16 15:52:48
微软收购前B社几乎不裁员 员工曾以为能一直干到退休

微软收购前B社几乎不裁员 员工曾以为能一直干到退休

游民星空
2026-08-19 23:01:50
又一零食塌房!记者暗访画面恶心至极,发黄又生虫,不少人天天吃

又一零食塌房!记者暗访画面恶心至极,发黄又生虫,不少人天天吃

旧窗老街
2026-08-19 19:18:59
170毫米的朝鲜巨炮,50公里外吊射乌军阵地,乌军不还手也有苦衷

170毫米的朝鲜巨炮,50公里外吊射乌军阵地,乌军不还手也有苦衷

阿器谈史
2026-08-21 11:19:45
纪实 老人狂扇未让座小伙4个耳光后猝死,家属索赔50万,法院判了

纪实 老人狂扇未让座小伙4个耳光后猝死,家属索赔50万,法院判了

谈史论天地
2026-02-19 15:41:31
118:66,中国男篮大胜卡塔尔!传来3大利好,下一站对手定了

118:66,中国男篮大胜卡塔尔!传来3大利好,下一站对手定了

林雁飞
2026-08-20 20:15:03
一天最多喝12瓶可乐,特朗普喝了几十年,为啥没事?

一天最多喝12瓶可乐,特朗普喝了几十年,为啥没事?

真猫爷的渔场
2026-08-19 09:54:09
裁员只用15分钟:曾被视为“重要到不可替代”的员工,最终难逃被裁

裁员只用15分钟:曾被视为“重要到不可替代”的员工,最终难逃被裁

一隅安稳
2026-08-20 07:47:30
迪奥曼德首曝猛料!穆帅凌晨5点来电,德罗巴警告:他是我爸!

迪奥曼德首曝猛料!穆帅凌晨5点来电,德罗巴警告:他是我爸!

慢歌轻步谣
2026-08-21 11:57:19
44岁伊万卡晒深V泳装秀长腿,自曝每日蛋白质摄入量

44岁伊万卡晒深V泳装秀长腿,自曝每日蛋白质摄入量

影视情报室
2026-08-21 02:15:39
一股清流啊!杭州一男子“婚前房全转给妻子”刷屏引争议,网友:男的赌钱,女的赌命

一股清流啊!杭州一男子“婚前房全转给妻子”刷屏引争议,网友:男的赌钱,女的赌命

火山詩话
2026-08-20 05:06:27
1939年,日军狼狗部队无人可挡,董翰良猛拍大腿:怎么把它给忘了

1939年,日军狼狗部队无人可挡,董翰良猛拍大腿:怎么把它给忘了

历史龙元阁
2026-08-20 15:10:14
这款厨房纸立即停止使用!检出2A类致癌物!知名品牌发布召回公告,快看你家有没有

这款厨房纸立即停止使用!检出2A类致癌物!知名品牌发布召回公告,快看你家有没有

申消费
2026-08-21 10:27:24
美论坛:为什么中国人如此害怕印度军队?外国网友给出答案

美论坛:为什么中国人如此害怕印度军队?外国网友给出答案

每一次点击
2026-04-19 00:14:10
41岁岳云鹏频繁头晕,全套体检查不出问题,病因就是一个字

41岁岳云鹏频繁头晕,全套体检查不出问题,病因就是一个字

秋姐居
2026-08-21 12:11:35
印度为何总想霸占西藏?西藏如果丢了,连喝水都要看人脸色

印度为何总想霸占西藏?西藏如果丢了,连喝水都要看人脸色

离离言几许
2026-08-20 15:30:30
2026-08-21 13:35:00
报错免疫体
报错免疫体
一名在需求评审和数据异常中反复横跳的产品运营。
160文章数 61关注度
往期回顾 全部

科技要闻

阿里AI的两面:云赚56亿,千问烧掉138亿

头条要闻

63岁男子误入太行山失联超百天 曾致电妻子称自己坠崖

头条要闻

63岁男子误入太行山失联超百天 曾致电妻子称自己坠崖

体育要闻

46岁小罗抵达意大利 将为拉文纳征战意丙

娱乐要闻

迪丽热巴与陈飞宇的恋情罗生门

财经要闻

三部门发布多条促内需优化政策

汽车要闻

比总部还大?比亚迪藏在上海虹桥的巨无霸闪充站!

态度原创

艺术
教育
时尚
亲子
本地

艺术要闻

11幅 俄罗斯艺术家画作中的秋收场景

教育要闻

小学奥数,蝴蝶模型

Rhode又来抢钱了!为什么Hailey总能做成爆款生意?

亲子要闻

仅退款的风吹到了医院!疑似癫痫患儿「检查结果正常」,家长要求退费!患者:不开检查就看不了病?医生也能反向投诉?深圳卫健委短片走红

本地新闻

《牛来》的一声“妈妈”,到底多少人被精神污染了

无障碍浏览 进入关怀版