security(server): /api/tunnels/check-availability 是唯一未认证的隧道存在性 oracle——可匿名枚举全部隧道名单

Đã đóng Phù hợp với người mới
#20 3 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
80/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python
Lĩnh vực
backend, security

Hướng nghiên cứu

Đọc python/tunely/server.py:1336-1342, nơi check_availability được khai báo mà không có đối số api key, và so sánh với các admin endpoint được gate tại :1320-1432 để thấy pattern _check_admin_api_key mà chúng chia sẻ; logic rò rỉ là _check_availability tại :1563-1591, trả về "Domain already exists". Gate route theo cùng cách và kiểm tra xem lời gọi precheck của frontend có cần chuyển sang đường dẫn creation conflict (409) không. Hoàn thành khi một lời gọi ẩn danh đến /api/tunnels/check-availability bị từ chối và frontend vẫn giải quyết creation conflict một cách chính xác.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

场景 gap 单(okguitar 提报)· 优先级 P1 · 依赖:无

基线 HEAD = 020dec3。

Summary

  • python/tunely/server.py:1336-1342:路由签名 async def check_availability(name: str) 没有 api key 参数、不调用 _check_admin_api_key,直接返回 available/reason;同文件其余管理端点全部带 key(:1320-1432)。(已亲读确认。)
  • _check_availability(:1563-1591)对已存在域名返回 "reason": "Domain already exists"——即匿名者可用它爆破(dsh/plait/gz 等前缀)枚举全部已存在隧道。

影响

PROBE_HARDENING 专门把 /health 的隧道计数摘掉(T3:活跃隧道数是 oracle),这条端点把整份名单留成匿名可枚举,为针对性攻击/社工提供目标;也是唯一匿名触达 DB 的端点(可当低成本 DB 探测器)。

建议

与 /api/tunnels 同门控(_check_admin_api_key);确需公开则改常量响应(前端预检改由创建冲突时 409 承担)。

Ngôn ngữ chính
Python
Star
0
Fork
0
Merge trung bình
2 phút
Pull request đã merge (30 ngày)
2

Chuẩn bị môi trường

  • Có Dockerfile hoặc tệp Docker Compose
  • Không có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của jeffkit/tunely

Tất cả issue của jeffkit/tunely

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.