@nuxtjs/mdc chuyển Markdown không tin cậy, bao gồm raw HTML, thành cây component Vue. parseMarkdown bật allowDangerousHtml theo mặc định, vì vậy bộ lọc thuộc tính và URL là lớp kiểm soát chính trước khi nội dung được render.
validateProp chỉ kiểm tra scheme đối với các thuộc tính có tên chính xác là href hoặc src. Giá trị SVG xlink:href được biểu diễn thành xLinkHref, không đi qua nhánh kiểm tra này, sau đó được renderer chuyển lại thành thuộc tính xlink:href; vì vậy URL javascript: có thể còn lại và chạy trong page origin khi người dùng chọn liên kết.
- Danh sách chặn có các mục như
data:text/html, nhưng mã cũ so sánh chúng với url.protocol, trong khi protocol của mọi data URI chỉ là data:. Do đó, iframe có src chứa data:text/html có thể vượt qua kiểm tra và thực thi script khi được tải trong opaque origin.
Dữ liệu đầu vào do kẻ tấn công kiểm soát là Markdown không tin cậy được ứng dụng đưa vào parser. Các thuộc tính href thông thường chứa javascript:, cùng với srcdoc, object, script và base, đã được chặn; vấn đề này là hai khoảng trống cụ thể trong sanitizer. Bản ghi cho thấy đường tấn công có thể được truy cập qua mạng và không yêu cầu đặc quyền, nhưng ứng dụng vẫn phải thực sự render nội dung do kẻ tấn công kiểm soát.