Files
9router/tests/unit
decolua da6aa90128 fix(video/vertex): reject job ids and model ids that escape the URL path
A Vertex job id is a base64url-encoded operation name, and base64url decoding
accepts arbitrary bytes without throwing, so the previous decode-and-split
check let a crafted id splice a path traversal into the fetch URL while the
Bearer token stayed attached — e.g. "..%2F..%2Fevil" resolved to
/v1/evil:fetchPredictOperation on the Vertex host. body.model had the same
shape on the create path, where it is interpolated into the URL unescaped.

decodeJobId now requires a charset-only id, a byte-for-byte round-trip, and a
decoded name matching ^projects/{p}/locations/{l}/publishers/{pub}/models/{m}/operations/{op}$
— no field may contain "/", so ".." can never reach the URL. model ids are
restricted to [A-Za-z0-9._-].

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-10 23:18:52 +07:00
..
2026-09-05 22:57:00 +07:00
2026-06-15 18:18:04 +07:00
2026-06-15 18:18:04 +07:00
2026-05-09 22:48:07 +07:00
2026-06-15 18:18:04 +07:00
2026-06-15 18:18:04 +07:00
2026-06-15 18:18:04 +07:00
2026-06-15 18:18:04 +07:00
2026-04-22 15:36:51 +07:00