HTML error page does not escape template filename/URI
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
- 72/100
Hướng nghiên cứu
Bắt đầu bằng cách tìm html_error_template() và đoạn mã hiển thị tên tệp mẫu hoặc URI trên trang lỗi. Theo dõi cách giá trị đó đi đến đầu ra HTML, sau đó thêm một bài kiểm thử hồi quy dùng URI chứa các ký tự HTML. Công việc hoàn tất khi URI được escape trong trang lỗi được tạo ra; hãy chạy các bài kiểm thử mẫu lỗi liên quan.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug
html_error_template() renders the template filename/URI without HTML escaping. If a template URI contains untrusted HTML, it is included verbatim in the generated error page rather than escaped.
To Reproduce
from mako.lookup import TemplateLookup
uri = "<img src=x onerror=alert(1)>"
lookup = TemplateLookup(format_exceptions=True)
lookup.put_string(uri, "${1/0}")
page = lookup.get_template(uri).render_unicode()
print(page)
Error
The generated error page contains:
<div class="location"><img src=x onerror=alert(1)>, line 1:</div>
I would expect the URI to be escaped.
Versions
- OS: Linux
- Python: 3.12
- Mako: 1.4.3 and current
main(14889bc)
Additional context
I reported this privately first. The security team reviewed it as a defense-in-depth issue and suggested opening a public issue or PR.
Happy to submit a fix and regression test.
- Ngôn ngữ chính
- Python
- Star
- 460
- Fork
- 106
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của sqlalchemy/mako
-
Support match case syntaxĐang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 38/100
sqlalchemy/mako#432 · 1 bình luận ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
sqlalchemy/mako#417 · 1 bình luận ·
-
Is there a mako+html formatter?Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
sqlalchemy/mako#392 · 2 bình luận ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 15/100
sqlalchemy/mako#382 · 2 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 48/100
sqlalchemy/mako#376 · 9 bình luận ·
Tất cả issue của sqlalchemy/mako
Issue tương tự
-
The changelog workflow excludes otelbot but not dependabot, so every Dependabot pull request fails the changelog checkCó thể đã có người làm @ocelotl đã nhận hôm nay. Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 82/100
open-telemetry/opentelemetry-python#5825 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
cuga-project/cuga-agent#1020 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 70/100
microsoft/playwright#43640 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
stac-utils/stac-fastapi-elasticsearch-opensearch#965 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 1 ngày