security: user-controlled URL params injected directly into Redux store via JSON.parse
Maintainer thường phản hồi trong vòng 1 ngà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
- 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
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
- 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 appbaseio/reactivesearch
-
ci: add Node.js version matrix, caching, and lint step to test workflowCó thể đã có người làm @Talha12Shiekh đã nhận 71 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
appbaseio/reactivesearch#2322 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
chore: add Dependabot config for automated dependency updatesCó thể đã có người làm @Talha12Shiekh đã nhận 71 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
appbaseio/reactivesearch#2321 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
refactor: consolidate 12 near-identical SVG icon components into one patternCó thể đã có người làm @Talha12Shiekh đã nhận 73 ngày trước. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
appbaseio/reactivesearch#2324 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
refactor: SearchBox.js is 2692 lines — extract subcomponents for maintainabilityCó thể đã có người làm @Talha12Shiekh đã nhận 71 ngày trước. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
appbaseio/reactivesearch#2323 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug: image src attributes not validated for javascript: protocol URLsCó thể đã có người làm @Talha12Shiekh đã nhận 71 ngày trước. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
appbaseio/reactivesearch#2320 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của appbaseio/reactivesearch
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
factory-active factory-automatic harness/claude-code task-identify-harness-labels-done task-identify-issue-type-done
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
vercel/ai#22549 · 1 bình luận ·
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 62/100
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 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation good first issue help wanted
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 85/100
zmo2s/agent-toolbox#23 ·