Skip to content

Security: overwrite00/NullifyPDF

SECURITY.md

πŸ”’ Security β€” NullifyPDF

Information about NullifyPDF's security model, privacy guarantees, and how to report security vulnerabilities.

Important

NullifyPDF is designed for maximum privacy. This document explains how we achieve it and what to do if you discover a vulnerability.


πŸ›‘οΈ Security Model

Privacy-First Design

NullifyPDF follows a privacy-first architecture:

Principle Implementation
100% Local All PDF processing happens on your machine
No Cloud No file uploads, no network transmission
No Telemetry Zero user tracking or analytics
Open Source Full code transparency, auditable by anyone
Cryptographic Scrubbing Binary-level data destruction (not just covering)

What NullifyPDF Does NOT Do

❌ No Internet Connections (except GitHub release checks)
❌ No Data Collection (no logs sent anywhere)
❌ No Third-party APIs (everything local)
❌ No User Accounts (no registration required)
❌ No Tracking (no cookies, no analytics)


πŸ” Technical Security

PDF Processing

When you export a PDF with redactions:

  1. βœ… Metadata Stripped β€” Creation date, author, embedded text removed
  2. βœ… Links Destroyed β€” Hyperlinks and form fields eliminated
  3. βœ… Binary Scrubbing β€” Text beneath redactions overwritten at binary level
  4. βœ… Forensically Sound β€” Redacted data is unrecoverable

Temporary Files

During export, NullifyPDF uses disk-backed temporary files:

  • Temporary data written to system temp directory
  • Automatically cleaned up after export completes
  • On Windows: %APPDATA%\Local\Temp\
  • On macOS/Linux: /tmp/

No Sensitive Data in Memory

  • Original PDF kept in memory only while open
  • AI results (detected entities) stored only in-memory during session
  • Exported PDF overwrites original data locations
  • Graceful cleanup on app close

πŸ”‘ Input Validation & Safety

File Type Verification

  • βœ… PDF files only (blocked: .exe, .zip, etc.)
  • βœ… File size limits to prevent DOS attacks
  • βœ… Encryption detection (blocks password-protected PDFs)
  • βœ… Path traversal protection (prevents ../../../etc/passwd exploits)

User Input Validation

  • βœ… Page number bounds checking
  • βœ… Language selection validation (EN/IT/BOTH only)
  • βœ… File path sanitization
  • βœ… Type hints on all functions

🚨 Responsible Disclosure

Found a Vulnerability?

Do NOT open a public GitHub issue. Instead, follow these steps:

  1. Assess the Risk

    • Is it a privacy leak? (severity: HIGH)
    • Is it a data corruption risk? (severity: HIGH)
    • Is it a UI bug? (severity: LOW)
  2. Report Through Proper Channel

    • Open a private security advisory on GitHub, OR
    • Contact through GitHub security form (coming soon)
  3. What to Include

    • Detailed vulnerability description
    • Steps to reproduce
    • Affected version(s)
    • Suggested fix (if you have one)
    • Your name (if you want credit)
  4. Timeline

    • You'll receive acknowledgment within 48 hours
    • Fix will be attempted within 2 weeks (critical) or 1 month (standard)
    • You'll be credited in release notes

Security Policy

We follow responsible disclosure principles:

  • Embargo Period: 30 days for critical vulnerabilities
  • Public Disclosure: After patch is released
  • Credit: Security researchers credited by name (unless anonymous requested)

πŸ”’ Security Support

Only the latest released version receives security updates. Always use the newest version for security patches and critical fixes.


πŸ“‹ Known Limitations

What We Don't Protect Against

  1. Shoulder Surfing β€” If someone watches your screen while redacting
  2. Malware on Your Computer β€” If your machine is compromised
  3. Unencrypted Storage β€” Save your PDF to an encrypted drive if sensitive
  4. Physical Access β€” If someone accesses your hard drive directly
  5. Forensic Recovery β€” If sophisticated attackers do disk forensics

What You Can Do

  • πŸ”’ Use encrypted storage (BitLocker, FileVault, LUKS)
  • πŸ›‘οΈ Keep antivirus software updated
  • πŸ”‘ Use strong passwords on your machine
  • 🚫 Don't share exported PDFs on unsecured channels
  • πŸ”„ Use trusted networks when processing sensitive documents

πŸ§ͺ Security Auditing

Code Review

The codebase is open source and welcomes security audits:

  • Review code on GitHub
  • Check NullifyPDF.py for data handling
  • Review ARCHITECTURE.md for system design
  • Examine test coverage in tests/

Static Analysis

We use Python static analysis tools:

# Type checking
mypy NullifyPDF.py

# Linting
pylint NullifyPDF.py

# Security scanning
bandit NullifyPDF.py

Testing

Security-relevant tests cover:

  • Input validation (path traversal, injection)
  • Resource cleanup (file handles, memory)
  • Permission handling (file mode, ownership)

Run tests:

pytest tests/ -v

πŸ” Privacy of Redaction Preferences

Local Storage

Your redaction preferences (blocklist/allowlist) are stored locally:

OS Location
Windows C:\Users\<username>\.nullifypdf\
macOS ~/.nullifypdf/
Linux ~/.nullifypdf/
  • βœ… Only accessible by your user account
  • βœ… Not synced to cloud
  • βœ… Not shared with anyone
  • βœ… Deleted when you remove files

File Permissions

On Linux/macOS, directory permissions default to:

drwx------  user  group  .nullifypdf/

Only your user can read/write. On Windows, standard user ACLs apply.


πŸ”„ Dependency Security

Third-Party Libraries

NullifyPDF uses trusted, actively-maintained libraries:

Library Purpose Status
pyside6 GUI framework βœ… Actively maintained
pymupdf PDF manipulation βœ… Actively maintained
presidio-analyzer PII detection βœ… Maintained by Microsoft
spacy NLP engine βœ… Actively maintained

Vulnerability Scanning

We monitor dependencies for CVEs:

  • GitHub Dependabot alerts enabled
  • Security updates applied promptly
  • Community reports welcomed

⚠️ Disclaimer

NullifyPDF is provided as-is without warranty. While we take security seriously:

  • No Guarantee of Unrecoverability β€” For highly sensitive data, consult legal/security experts
  • No Liability β€” Use at your own risk
  • Not a Legal Tool β€” Consult lawyers for document redaction in legal cases
  • Forensic Limitations β€” Determined attackers with forensic tools may recover data

For mission-critical or legal redactions, consider:

  • Professional redaction services
  • Dedicated security appliances
  • Expert legal guidance

πŸ™ Security Contributors

We acknowledge and credit security researchers who responsibly disclose vulnerabilities:

  • [List of past security fixes and contributors]
  • (Updates as vulnerabilities are resolved)

πŸ“ž Contact

Security Issues

For security vulnerabilities only:

  • GitHub Security Advisory (coming soon)
  • OR check GitHub repository for security contact

General Questions


πŸ“š Further Reading


Last updated: 2026-06-06
← Contributing | Back to README β†’

There aren't any published security advisories