Files
pangolin/server/routers
Dhananjay Maurya bae174766b Neutralise formula prefixes in CSV log exports
generateCSV escaped quotes only when a value happened to contain a comma and never neutralised formula prefixes, so every CSV log export could emit attacker controlled cells that execute when an admin opens the file. actor is a virtual API key name validated as nothing more than a non-empty string, and path, host, originalRequestURL, metadata and the AI session bodies come straight from the client request.

Each value now goes through a single encoder that collapses CR, LF and CRLF to a literal \n so a record can never be split across rows, prefixes a leading apostrophe when the first character would make a spreadsheet evaluate the cell as a formula, and quotes whenever the field contains a comma or a quote instead of only when it contains a comma. Headers use the same encoder so a column name cannot desynchronise the rows from the header row.

The five CSV export endpoints also declare charset=utf-8, matching the content type already used by the log streaming destination.

Fixes #3864
2026-10-08 14:43:43 +05:30
..
2026-07-20 11:43:09 -04:00
2026-08-12 13:21:56 -04:00
2026-08-11 22:25:26 +02:00
2026-06-23 12:22:47 -04:00
2026-09-15 10:25:06 -04:00
2026-02-11 10:06:56 -08:00
2026-07-06 14:44:30 -04:00
2026-08-24 11:42:35 -04:00
2026-09-23 10:40:21 -04:00
2026-06-29 15:22:35 -04:00
2026-07-07 15:04:41 -04:00
2026-04-16 20:58:18 -07:00
2026-07-01 21:43:51 -04:00
2026-09-21 15:21:12 -04:00
2026-08-17 12:00:12 -04:00
2026-09-15 15:02:37 -04:00
2026-09-14 16:48:08 -04:00
2026-08-19 17:25:32 -04:00