Commit 443664b
Paul C
v23.12.15: abuse-report is MANUAL ONLY — locked in with build-time test
Operator-facing guarantee: WolfStack will NEVER auto-send abuse
reports. Send is reachable ONLY from an authenticated operator
clicking 'Send report' in the UI. Auditing the v23.12.14 codebase
confirmed exactly one caller of send_report exists (the API handler
in src/api/mod.rs); this commit locks that property in so it
remains true.
Three layers of defence:
1) Module-level doc on src/abuse_report/mod.rs now lists the six
reasons auto-reporting is forbidden:
1. Mail-reputation damage — auto-mail to abuse desks gets
SMTP flagged. Real alerts stop arriving and nobody notices.
2. False positives become permanent the moment they leave
the server. Human review catches 'wait, that's our own
monitoring' before send.
3. Abuse desks pattern-match auto-mail and deprioritise it.
Hand-reviewed reports are dramatically more likely to get
the customer suspended.
4. Legal exposure — written accusations against third parties
need a human standing behind them.
5. Fleet amplification — one attacker on 12 nodes becomes 12
auto-reports for one incident.
6. Replies need a human to read them. Auto-send + no follow-up
= case dies in the queue.
2) Function-level doc on send_report() repeats the prohibition in
even sharper terms — explicit list of integration points it must
NOT be wired into (limiter hooks, alerting loop, scheduled tasks,
log tailers, tokio/thread spawn from event handlers).
3) NEW regression test walks
the entire src/ tree at build time and FAILS if a second caller
of send_report appears anywhere. Filters out comments + the
module's own self-references. Verifies the one remaining caller
is the API handler in api/mod.rs. Future PRs that try to slip in
an auto-trigger will break CI.
No runtime behaviour change — v23.12.14 was already manual-only;
this commit makes that property impossible to silently regress.1 parent d1927f9 commit 443664b
2 files changed
Lines changed: 98 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
40 | 57 | | |
41 | 58 | | |
42 | 59 | | |
| |||
365 | 382 | | |
366 | 383 | | |
367 | 384 | | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
368 | 401 | | |
369 | 402 | | |
370 | 403 | | |
| |||
415 | 448 | | |
416 | 449 | | |
417 | 450 | | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
418 | 510 | | |
419 | 511 | | |
420 | 512 | | |
| |||
0 commit comments