首页 网络安全 正文
  • 本文约1354字,阅读需7分钟
  • 3
  • 0

Datasette中的开放重定向漏洞CVE-2025-6448

摘要

栋科技漏洞库关注到 Datasette 受影响版本中存在的一个开放重定向漏洞,该漏洞现已被追踪为CVE-2025-64481,该漏洞暂无CSS评级。

Datasette 是一个功能性的交互式前端,是一个用于探索和发布数据的开源多工具,可用于表格数据,无论是 CSV 文件还是数据库模式。

一、基本情况

Datasette开源工具,用于探索、可视化和发布表格数据(如CSV文件或SQLite数据库),支持通过Web界面进行数据查询、筛选和共享。

Datasette 是用于探索和发布数据的开源 Python 工具,帮人们获取任何格式的数据,分析和探索它,并将其作为交互式网站和 API 发布。

Datasette中的开放重定向漏洞CVE-2025-6448

Datasette 提供了一系列内置的自省(Introspection)功能,从而允许开发者和系统管理员深入了解Datasette实例的内部状态和配置情况。

栋科技漏洞库关注到 Datasette 受影响版本中存在的一个开放重定向漏洞,该漏洞现已被追踪为CVE-2025-64481,该漏洞暂无CSS评级。

二、漏洞分析

CVE-2025-64481漏洞是 Datasette 版本在0.65.1及以下以及版本1.0a0至1.0a19中,部署的Datasette实例中存在一个开放的重定向漏洞。

简单而言,对路径//example.com/foo/bar/(必须包含结尾斜杠)的点击会将用户重定向到https://example.com/foo/bar

具体而言,该漏洞可能导致用户被诱导访问恶意网站,造成开放重定向攻击:

部署的 Datasette 实例在接收到类似 //example.com/foo/bar/的路径请求(必须包含结尾斜杠)时,

会将用户重定向到 https://example.com/foo/bar(移除了第一个斜杠并使用 HTTPS)。

这个问题已在Datasette版本0.65.2和1.0a21中得到修复。

作为解决方案,如果Datasette在代理服务器后面运行,则该代理服务器可以被配置为将传入的请求URL中的双斜杠替换为单斜杠。

具体的漏洞代码如下:

datasette/app.py
@@ -2150,6 +2150,11 @@ async def handle_404(self, request, send, exception=None):
        context = {}
        if path.endswith(b"/"):
            path = path.rstrip(b"/")

            # If you redirect with a // at the beginning, you end up with an open redirect, so
            # https://my.site//foo/ - will redirect to https://foo
            path = re.sub(rb"^/+", b"/", path)

            if request.scope["query_string"]:
                path += b"?" + request.scope["query_string"]
            await asgi_send_redirect(send, path.decode("latin1"))
tests/test_custom_pages.py
@@ -97,3 +97,9 @@ def test_custom_route_pattern_404(custom_pages_client):
    assert response.status == 404
    assert "<h1>Error 404</h1>" in response.text
    assert ">Oh no</" in response.text

def test_custom_route_pattern_with_slash_slash_302(custom_pages_client):
    response = custom_pages_client.get("//nastyOpenRedirect/")
    assert response.status == 302
    assert response.headers["location"] == "/nastyOpenRedirect"

三、影响范围

Datasette <= 0.65.1

Datasette 版本 1.0a0 至 1.0a19

四、修复建议

Datasette >= 0.65.2

Datasette >= 1.0a20

Datasette >= 1.0a21

五、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接