| tiêu đề | Node.js @carto/api-client 0.5.29 Prototype Pollution |
|---|
| Mô tả | @carto/api-client exposes addFilter(filters, options) for adding filters to a filter object. The column option is used directly as a dynamic property name on a normal object. Passing column: "__proto__" causes the function to write the filter data onto Object.prototype.
The vulnerable logic is in src/filters.ts:
export function addFilter(
filters: Record<string, Filter>,
{column, type, values, owner}: AddFilterOptions
): Record<string, Filter> {
if (!filters[column]) {
filters[column] = {};
}
const filter = {values, owner} as FilterTypeOptions<typeof type>;
(filters[column][type] as FilterTypeOptions<typeof type>) = filter;
return filters;
}
When column is __proto__, filters[column] resolves to Object.prototype instead of a safe own property on filters. The guard therefore does not create a new own object: |
|---|
| Nguồn | ⚠️ https://github.com/CartoDB/carto-api-client/issues/299 |
|---|
| Người dùng | wjm1 (UID 98929) |
|---|
| Đệ trình | 12/06/2026 15:35 (cách đây 1 tháng) |
|---|
| Kiểm duyệt | 17/07/2026 21:30 (1 month later) |
|---|
| Trạng thái | được chấp nhận |
|---|
| Mục VulDB | 379917 [CartoDB carto-api-client 0.5.29 src/filters.ts addFilter column nâng cao đặc quyền] |
|---|
| điểm | 20 |
|---|