CVE-2025-0108:通过 PAN-OS Nginx/Apache 路径混淆实现的身份验证绕过漏洞 _

CVE-2025-0108:通过 PAN-OS Nginx/Apache 路径混淆实现的身份验证绕过漏洞 _

Ots安全 2025-04-03 19:23

目标
– PAN OS 10.2.x < 10.2.13-h3

  • PAN OS 11.0.x < 11.1.6-h1

  • PAN OS 11.2.x < 11.2.4-h4

解释

CVE-2025-0108是在 Palo Alto Networks PAN-OS 防火墙管理界面中发现的一个身份验证绕过漏洞。它是由 Assetnote 研究团队在分析CVE-2024-0012 和 CVE-2024-9474补丁时发现的。

先前的漏洞(CVE-2024-0012 和 CVE-2024-9474)被攻击者利用,通过禁用 PAN-OS 防火墙来获取 root 权限,而研究团队在分析这些漏洞的修补过程时,发现 PAN-OS 管理界面中存在一个漏洞,这导致了新的身份验证绕过漏洞 CVE-2025-0108。

该漏洞是通过利用Nginx → Apache → PHP 的复杂身份验证处理过程中出现的路径混淆和双重 URL 解码问题

来绕过身份验证的。 PAN-OS 的管理界面通过以下方式处理 Web 请求:

  1. Nginx 步骤

接收客户端的请求并
X-pan-AuthCheck设置标头以确定是否需要身份验证。此后,包含特定路径(包括)
/unauth/的请求可以被视为不需要身份验证。

if ($uri~ ^\/unauth\/.+$) {  set$panAuthCheck'off';}

这会导致/unauth/包含路径的请求X-pan-AuthCheck: off被设置并被视为不需要身份验证。

  1. Apache 步骤

重新处理从 Nginx 转发的请求并
mod_rewrite通过 重写特定路径。

<Location "/">    DirectorySlashoff    RewriteEngineon    RewriteRule ^(.*)(\/PAN_help\/)(.*)\.(css|js|html|htm)$ $1$2$3.$4.gz [QSA,L]    AddEncoding gzip .gz    Options Indexes FollowSymLinks    Requireall granted</Location>
  • 当请求转发到 Apache 时,Apache 会再次解释路径并执行内部重定向。

  • 由于URL 需要再次解码,因此该过程可能会引入路径混淆。

  • PHP 步骤

根据从 Apache 传递的请求,它确定该请求是否真正经过身份验证并处理该请求。

if (    $_SERVER['HTTP_X_PAN_AUTHCHECK'] != 'off'    && $_SERVER['PHP_SELF'] !== '/CA/ocsp'    && $_SERVER['PHP_SELF'] !== '/php/login.php'    && stristr($_SERVER['REMOTE_HOST'], '127.0.0.1') === false) {    // ... check authentication ...}

如果请求传递给 PHP 应用程序
X-pan-AuthCheck: off,则认为不需要身份验证。

Apache 的路径重新解释问题

Apache 
RewriteRule在处理时执行内部重定向,这涉及再次解码 URL。

RewriteRule (.*)\.abc$ $1 [L]

通过利用双重解码问题,攻击者可以尝试使用双重 URL 编码来绕过身份验证。

攻击者可以通过发送如下请求来绕过身份验证:

GET /unauth/%252e%252e/php/ztp_gate.php/PAN_help/x.css HTTP/1.1Host: target.firewallConnection: close

如何处理请求

1、Nginx 处理
– %252e%252e在第一次 URL 解码中转换为
%2e%2e( )..

  • /unauth/%2e%2e/php/ztp_gate.php/PAN_help/x.css因为路径/unauth/包含
    X-pan-AuthCheck: off(即不需要身份验证)而被设置

2、Apache 处理
– Apache 重新处理路径并执行内部重定向。

  • %2e%2e再次解码,实际请求路径
    /php/ztp_gate.php/PAN_help/x.css变为

  • Apache 将此请求视为普通的 PHP 执行请求
    ztp_gate.php并执行它。

3、运行 PHP
– 该请求/
php/ztp_gate.php已被转发且
X-pan-AuthCheck: off处于无需身份验证即可执行的状态。

该漏洞已在PAN-OS 10.2.13-h3、11.1.6-h1、11.2.4-h4及后续版本中修复。

感谢您抽出

.

.

来阅读本文

点它,分享点赞在看都在这里