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

security: user-controlled URL params injected directly into Redux store via JSON.parse

Đang mở Phù hợp với người mới
#2,319 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

@Talha12Shiekh đang làm issue này rồi.

Từ ngày 30/7/2026.

  • #2333 của @Talha12Shiekh — đang mở

Đá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
68/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
javascript, react
Lĩnh vực
frontend, security

Hướng nghiên cứu

Bắt đầu tại packages/web/src/components/basic/ReactiveBase.js, ở các dòng 140-162, và kiểm tra cách các tham số URL được phân tích trước khi đi vào selectedValues. Xác thực rằng các giá trị đã phân tích là các primitive string hoặc các object có value và category, đồng thời từ chối các dạng khác. Hoàn thành khi các tham số hợp lệ vẫn điền vào Redux state, còn các cấu trúc được tạo thủ công hoặc sai định dạng bị bỏ qua.

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

Mô tả

Problem

ReactiveBase.js parses URL search parameters directly with JSON.parse and injects the result into the Redux store as initial selectedValues:

Array.from(params.keys()).forEach((key) => {
    try {
        const parsedParams = JSON.parse(params.get(key));
        selectedValues[key] = { value: parsedParams.value || parsedParams, ... };
    } catch (e) { /* silent failure */ }
});

A crafted URL can inject arbitrary object structures into the store, potentially triggering unexpected behavior in downstream components that consume selectedValues.

Location

packages/web/src/components/basic/ReactiveBase.js, lines 140-162

Suggested Fix

Validate the shape of parsed values before injection. Expected shapes are string primitives or { value, category } objects. Reject anything that doesn't match.

Severity

High — URL injection into application state

Ngôn ngữ chính
JavaScript
Star
4.9k
Fork
479
Merge trung bình
4 ngày 10 giờ
Pull request đã merge (30 ngày)
4

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 appbaseio/reactivesearch

Tất cả issue của appbaseio/reactivesearch

Issue tương tự

Thêm issue về JavaScript

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.