Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

[interpreter] Text lexer accepts surrogate escapes and crashes on escapes past U+10FFFF

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

Maintainer thường phản hồi trong vòng 1 ngày

Một pull request liên quan đã được merge.

  • #2295 của @rossberg — đã merge

Đá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
66/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Lĩnh vực
backend

Hướng nghiên cứu

Bắt đầu với trường hợp escape u của lexer chuỗi văn bản và kiểm tra cách nó gọi Utf8.encode; issue không nêu tên tệp hay đường dẫn kiểm thử. Kiểm tra các ví dụ được cung cấp để tìm giá trị surrogate và giá trị ngoài phạm vi, rồi chạy các bài kiểm thử liên quan của trình thông dịch. Công việc hoàn tất khi cả hai đầu vào đều báo chuỗi sai định dạng thay vì tạo ra UTF-8 không hợp lệ hoặc một ngoại lệ không được bắt.

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

Mô tả

\u{n} is well-formed only for n < 0xD800 or 0xE000 <= n < 0x110000.

Surrogates are accepted and encoded as invalid UTF-8:

(module (memory 1) (data (i32.const 0) "\u{D800}"))

This parses, and the data segment holds ED A0 80. It should be malformed.

Escapes past U+10FFFF crash the interpreter instead of reporting a syntax error:

(assert_malformed (module quote "(data \"\\u{110000}\")") "malformed UTF-8")
uncaught exception Wasm.Utf8.Utf8

The u case of the string lexer calls Utf8.encode with no check and no handler. encode doesn't reject surrogates and raises Utf8 for n >= 0x110000.

Tested at 340650f.

Ngôn ngữ chính
WebAssembly
Star
3.5k
Fork
540
Merge trung bình
1 ngày 6 phút
Pull request đã merge (30 ngày)
25

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

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 WebAssembly/spec

Tất cả issue của WebAssembly/spec

Issue tương tự

Thêm issue về Backend & API Design

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.