curl非OpenSSL后端静默忽略SSL安全选项漏洞分析
curl非OpenSSL后端静默忽略SSL安全选项漏洞分析摘要受影响版本已在最新的 master 版本commit2d5a063121202acaa23bb77975b2739bec4551ce以及 mbedTLS 3.6 和 4.0 版本上进行测试。复现步骤在Linux系统上安装Docker并运行test.sh脚本。该脚本会编译两个版本的curl一个使用mbedTLS后端另一个使用OpenSSL后端。随后它通过一个自定义的C程序这是复现漏洞所必需的测试这三个bug此外还会在命令行测试EC_CURVES漏洞。预期输出 mbedTLS curl 8.19.0-DEV (mbedTLS/4.0.0) setopt: No error perform: No error Result: VULNERABLE - silently ignored! Setting: INVALID_CURVE_NAME setopt: No error perform: No error Result: VULNERABLE - silently ignored! Setting: fake_crl.pem setopt: No error perform: Failed to load CRL file (path? access rights?, format?) Result: CORRECT - CRL check enforced SUMMARY CURLOPT_SSL_EC_CURVES VULNERABLE CURLOPT_CRLFILE OK FOUND 2 VULNERABILITIES OpenSSL curl 8.19.0-DEV (OpenSSL/3.0.13) setopt: No error Setting: INVALID_CURVE_NAME setopt: No error perform: Could not use specified SSL cipher Result: CORRECT - EC curve validated Setting: fake_crl.pem setopt: No error perform: Failed to load CRL file (path? access rights?, format?) Result: CORRECT - CRL check enforced SUMMARY CURLOPT_SSL_EC_CURVES OK CURLOPT_CRLFILE OK No vulnerabilities found. ######################################## # CLI TEST (--curves) ######################################## mbedTLS CLI Running: curl --curves INVALID_CURVE https://curl.se 200 - VULNERABLE (silently ignored) OpenSSL CLI Running: curl --curves INVALID_CURVE https://curl.se 000 - CORRECT (rejected invalid curve) ######################################## # RESULT ######################################## VULNERABILITIES CONFIRMED: mbedTLS ignores SSL options that OpenSSL enforces这个问题很可能也存在于使用Schannel后端的Windows系统中但未经过测试。支持材料/参考资料附件中包含以下文件Dockerfile: 使用 mbedTLS 和 OpenSSL 后端构建 curl。test_ssl_options.c: 测试所有SSL选项的测试程序。run_test.sh: 测试脚本在容器内运行。test.sh: 构建和运行脚本宿主机入口点。修复建议修复方法应很简单对于未实现这些特性的后端返回CURLE_NOT_BUILT_IN错误。returnCURLE_NOT_BUILT_IN;这需要每个后端声明其支持的特性。在接受选项之前检查支持情况。影响总结加密降级CURLOPT_SSL_EC_CURVES/--curves选项被忽略允许服务器或MITM攻击者协商比预期更弱的椭圆曲线从而可能利用已知的加密弱点。静默失败最关键的是这些选项是静默失败的返回CURLE_OK并继续执行而没有进行安全检查。应用程序无法检测到其安全要求未被强制执行。受影响平台所有使用受影响后端的系统。例如OpenWrt在新版本中用 mbedTLS 替换了 WolfSSL、使用Schannel的 Windows 构建版本以及许多物联网设备和 Docker 容器。WolfSSL可能也存在相同的bug。攻击面这些bug同时影响libcurl应用程序通过curl_easy_setopt()和curl命令行用户通过--curves和--crlfile标志。三个漏洞中有两个不仅可以通过自定义程序也可以通过命令行利用。FINISHEDbiOK/hzhVF2yKaGc5mK8oeejIYuUYW8I3RsXQCFCiXWteYlwHYYXwn/OoRebmyRo更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享

相关新闻

建议收藏!AI时代别再死磕大模型开发!普通人这样入局才是真捷径

建议收藏!AI时代别再死磕大模型开发!普通人这样入局才是真捷径

现在大家都清楚,AI绝对是未来的大势所趋,很多人都想尽快上车、抓住这波红利,但经常有粉丝、读者在后台问:我到底该怎么真正参与进去? 其实答案特别简单,就跟当年我们刚接触智能手机一样。 AI本质上就是一次…

2026/7/3 11:05:16 阅读更多 →
esp32 blufi iOS APP针对隐藏wifi的最佳处理方式

esp32 blufi iOS APP针对隐藏wifi的最佳处理方式

如果你的 iOS App 用 BLUFI 给 ESP32 配网,而路由器 SSID 处于隐藏,最佳实践其实就一句话: 尽量让 App 拿到目标 AP 的 BSSID(路由器/AP 的 MAC),再通过 BLUFI 一起下发。 因为 BLUFI 协议本身就写明&…

2026/7/3 23:41:29 阅读更多 →
堆溢出与堆利用基础

堆溢出与堆利用基础

Day 25: 堆溢出与堆利用基础 堆(Heap)是程序运行时动态分配内存的区域。与栈不同,堆的管理更加复杂,漏洞利用也更具挑战性。本章介绍 glibc 堆管理机制和常见的堆漏洞类型。 1. 堆基础知识 1.1 堆与栈的区别 特性栈堆分配方式自…

2026/7/4 1:43:55 阅读更多 →

最新新闻

Cadence 17.4 实战:从设计规则到Gerber输出的PCB设计全流程解析

Cadence 17.4 实战:从设计规则到Gerber输出的PCB设计全流程解析

1. Cadence 17.4入门:从零搭建PCB设计环境刚接触Cadence 17.4时,我花了整整三天才把环境配置明白。现在回头看,其实只要抓住几个关键点就能快速上手。首先得把PSMPATH(封装库路径)和PADPATH(焊盘库路径&…

2026/7/4 2:01:27 阅读更多 →
Claude Code实战:30分钟构建Node.js CLI任务管理器

Claude Code实战:30分钟构建Node.js CLI任务管理器

这次我们来看一个能让你用自然语言直接构建完整应用的工具:Claude Code。它来自 Anthropic,是 Claude 家族中专门为软件工程设计的 AI 助手。核心思路很简单:你描述你想要的应用功能,它来生成代码、处理大部分实现细节。这听起来像…

2026/7/4 2:01:27 阅读更多 →
ICM-42688-P运动传感器与PIC18LF27K42在工业自动化中的应用

ICM-42688-P运动传感器与PIC18LF27K42在工业自动化中的应用

1. ICM-42688-P运动传感器的技术解析ICM-42688-P是一款六轴运动传感器,集成了三轴陀螺仪和三轴加速度计。这款传感器在工业应用中表现出色,主要得益于以下几个关键技术特性:1.1 高精度运动检测能力ICM-42688-P的陀螺仪量程可达2000dps&#x…

2026/7/4 1:59:26 阅读更多 →
WinDiskWriter:在Mac上轻松制作Windows启动盘的专业解决方案

WinDiskWriter:在Mac上轻松制作Windows启动盘的专业解决方案

WinDiskWriter:在Mac上轻松制作Windows启动盘的专业解决方案 【免费下载链接】windiskwriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI & Le…

2026/7/4 1:57:25 阅读更多 →
SpringBoot内嵌Tomcat防护Slow HTTP攻击实战指南

SpringBoot内嵌Tomcat防护Slow HTTP攻击实战指南

1. 项目背景与问题定位去年在给某金融系统做压力测试时,我们突然发现当并发连接数达到2000左右时,整个SpringBoot应用会完全停止响应。通过netstat命令查看,发现有大量TCP连接卡在CLOSE_WAIT状态。这个现象让我意识到:Tomcat的默认…

2026/7/4 1:55:25 阅读更多 →
Spring Boot多数据源与Druid监控集成实战

Spring Boot多数据源与Druid监控集成实战

1. 项目概述作为一名长期奋战在Java后端开发一线的工程师,我深知多数据源配置在实际项目中的重要性。最近在升级Spring Boot 3的项目中,遇到了多数据源与Druid监控集成的一系列"坑",今天就把这些实战经验完整分享出来。这个方案完美…

2026/7/4 1:55:25 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻