You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
security: enhance log redaction and implement permanent audit scanners (v1.26.0)
- Implemented TokenRedactingFilter in main.py to mask JWT tokens, RTSP credentials, and API keys in live stdout logs.
- Added apply_security_logging() to lifespan to ensure security filters persist during Uvicorn reloads.
- Synchronized SECURITY.md and AGENTS.md with new log security standards and mandatory rebuild rules.
Copy file name to clipboardExpand all lines: SECURITY.md
+5-4Lines changed: 5 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -76,10 +76,11 @@ VibeNVR's code includes specific mitigations against common attack vectors:
76
76
4.**Secure Subprocess Execution**:
77
77
- All internal calls to video tools (`ffmpeg`, `ffprobe`) are performed using **list-based arguments** (the secure default in Python's `subprocess.run`), effectively preventing any shell injection vulnerabilities via malicious camera URLs or paths.
78
78
4.**Advanced Log & GUI Masking**:
79
-
- The logging infrastructure (`backend/routers/logs.py`) and the custom `TokenRedactingFilter` in `main.py` automatically mask stdout logs for:
80
-
-**RTSP Credentials**: `rtsp://user:***@host`
81
-
-**Sensitive JSON fields**: `"password": "***"`, `"token": "***"`, etc.
-**Perpetual Security Audit**: Mandatory runtime scans are performed during the CI/CD and security audit workflows to ensure that sensitive strings never leak into the application's stdout.
83
84
-**RTSP URL Redaction (GUI Level)**: Starting from **v1.25.3**, the frontend configuration interface implements dynamic URL masking. RTSP and Sub-Stream URLs are displayed without plain-text passwords (redacted as `********`). If a user pastes a full URL containing a password, it is automatically extracted to the secure separate fields and redacted in real-time.
84
85
5.**Privacy Masking & Motion Zones**:
85
86
-**Privacy Masks** are applied at the Engine level immediately after frame decoding. They are "burned" into the video frames *before* they reach the recording or motion analysis modules, ensuring that sensitive data is never persisted or processed if masked.
0 commit comments