macOS BigSur自带Apache httpd 2.4.46漏洞无法更新如何修复?
解决方案
方案1:等待苹果官方安全更新(最推荐)
macOS 预装的系统组件归苹果官方维护,/usr/sbin 路径下的文件属于密封系统快照的一部分,即便是关闭SIP也无法随意修改,强制修改会破坏系统签名,导致后续系统升级失败、功能异常。
苹果会定期推送安全补丁修复预装组件的漏洞,你可以定期检查「系统偏好设置-软件更新」中的安全更新推送,这是唯一不会破坏系统稳定性的长期修复方案。
方案2:禁用系统自带httpd并配置新版httpd优先(可快速满足合规要求)
如果需要立即完成漏洞修复,可按以下步骤操作:
- 第一步:永久禁用系统自带Apache服务,确保漏洞版本不会被启动调用:
执行命令:
执行后运行sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plistsudo launchctl list | grep httpd,无输出即代表服务已禁用。 - 第二步:配置PATH优先级,保证调用httpd时默认使用brew安装的安全版本:
编辑全局环境变量配置文件/etc/profile或者当前用户的shell配置文件(如~/.zshrc、~/.bashrc),在文件末尾添加:
执行export PATH=/usr/local/bin:$PATHsource 对应配置文件路径生效,之后运行which httpd如果返回/usr/local/bin/httpd即代表配置成功。 - 第三步:可向合规部门提交漏洞风险缓释说明:证明漏洞版本已被禁用,不会产生实际安全风险,同时已部署安全版本替代。
方案3:强制修改系统自带httpd(不推荐,仅做特殊场景参考)
如果合规要求必须移除/替换/usr/sbin下的漏洞二进制文件,可按以下步骤操作,但后续系统更新会覆盖你的修改,且可能导致系统异常:
- 重启Mac并按住Command+R进入恢复模式,在恢复模式的终端中执行
csrutil disable关闭SIP,正常重启进入系统 - 执行命令挂载系统卷为可写:
sudo mount -uw / - 之后即可替换
/usr/sbin/httpd文件,操作完成后建议重新开启SIP保证系统安全性。
补充说明
你列出的漏洞中,CVE-2020-13938为Windows平台专属漏洞,其余漏洞均需要开启对应Apache模块(如mod_auth_digest、mod_session、mod_proxy系列模块)才会触发,你可以执行httpd -M检查本机是否开启了受影响模块,若未开启,实际攻击面极小,可先提交风险说明申请补丁等待期。
内容的提问来源于stack exchange,提问作者AJ Hurst
相关产品推荐
相关产品推荐

