Wesley Simplicio
fae0fa4325
fix(tirith): suppress .app lookalike_tld false positives in warn verdicts
...
Tirith flags .app domains with a lookalike_tld finding because the TLD
"can be confused with file extensions". This is a false positive for
legitimate production APIs (e.g. api.example.app, lark.app).
Add _is_app_tld_finding() and a post-parse suppression block in
check_command_security(): if the only finding(s) on a warn verdict are
lookalike_tld entries for .app, downgrade the action to allow.
Mixed findings (e.g. .app + shortened_url) and block verdicts are
unaffected. Non-.app lookalike_tld findings (.zip, .exe, etc.) are
preserved.
Add 15 regression tests covering: .app-only suppression, mixed-finding
preservation, non-.app TLD preservation, block-verdict invariance, and
the helper's field-name and case-insensitivity behaviour.
Closes #24461
2026-05-18 10:20:07 -07:00
..
2026-05-15 14:00:01 -07:00
2026-05-16 23:05:27 -07:00
2026-03-17 02:33:12 -07:00
2026-03-31 08:48:54 +09:00
2026-03-23 07:43:12 -07:00
2026-05-16 01:24:25 -07:00
2026-04-08 02:24:32 -07:00
2026-04-01 04:18:50 -07:00
2026-05-12 15:14:49 -07:00
2026-05-15 14:00:01 -07:00
2026-04-23 22:23:37 -07:00
2026-05-15 14:00:01 -07:00
2026-05-18 16:34:24 +05:30
2026-05-15 10:36:38 +05:30
2026-05-11 11:13:25 -07:00
2026-05-12 16:33:33 -07:00
2026-04-07 13:36:38 -07:00
2026-05-16 23:05:27 -07:00
2026-05-08 11:07:38 -07:00
2026-05-07 05:02:26 -07:00
2026-05-15 12:35:07 -07:00
2026-04-07 10:25:31 -07:00
2026-05-17 11:40:05 -07:00
2026-05-07 05:11:09 -07:00
2026-04-28 23:17:39 -07:00
2026-05-08 16:39:32 -07:00
2026-05-08 16:39:32 -07:00
2026-05-14 15:56:07 -07:00
2026-04-21 16:41:26 -07:00
2026-05-11 11:13:25 -07:00
2026-05-11 11:03:29 -07:00
2026-04-13 04:45:07 -07:00
2026-05-15 01:33:13 -07:00
2026-04-17 20:39:25 -07:00
2026-05-18 02:14:43 -07:00
2026-05-18 10:14:38 -07:00
2026-04-02 12:40:03 +11:00
2026-05-07 05:35:33 -07:00
2026-05-17 02:29:37 -07:00
2026-05-17 13:33:26 -07:00
2026-05-15 15:28:18 -07:00
2026-05-08 09:27:26 -07:00
2026-05-08 09:27:26 -07:00
2026-05-11 11:20:58 -07:00
2026-03-18 02:55:30 -07:00
2026-03-11 20:02:36 -07:00
2026-05-11 11:13:25 -07:00
2026-05-11 11:13:25 -07:00
2026-04-11 13:59:52 -07:00
2026-05-16 23:05:27 -07:00
2026-05-16 00:57:39 -07:00
2026-05-17 13:13:22 -07:00
2026-05-17 11:38:55 -07:00
2026-05-17 23:28:45 -07:00
2026-05-11 11:13:25 -07:00
2026-05-04 02:42:16 -07:00
2026-05-08 14:27:40 -07:00
2026-05-15 01:25:33 -07:00
2026-05-15 01:25:33 -07:00
2026-05-11 11:20:58 -07:00
2026-05-15 12:35:07 -07:00
2026-05-15 14:00:01 -07:00
2026-05-15 12:35:07 -07:00
2026-05-18 10:20:07 -07:00
2026-05-11 11:13:25 -07:00
2026-04-26 19:02:55 -07:00
2026-04-23 21:51:19 -07:00
2026-05-09 18:44:58 -07:00
2026-05-15 12:11:32 -07:00
2026-05-16 22:49:54 -07:00
2026-05-15 01:52:48 -07:00
2026-05-17 02:29:41 -07:00
2026-05-11 11:20:58 -07:00
2026-05-12 18:43:50 -07:00
2026-05-15 01:50:41 -07:00
2026-04-07 10:25:31 -07:00
2026-05-17 02:29:41 -07:00
2026-05-17 11:55:25 -07:00
2026-05-11 11:13:25 -07:00