Skip to content

Add comprehensive input file validation and security checks#12

Open
kallal79 wants to merge 1 commit intoveraison:masterfrom
kallal79:feature/comprehensive-input-validation
Open

Add comprehensive input file validation and security checks#12
kallal79 wants to merge 1 commit intoveraison:masterfrom
kallal79:feature/comprehensive-input-validation

Conversation

@kallal79
Copy link
Copy Markdown

This commit implements comprehensive validation for input files to address security vulnerabilities and improve robustness as described in issue #11.

Security features added:

  • Path traversal protection: Detects and blocks ../.. patterns
  • File size limits: 10MB maximum to prevent resource exhaustion
  • File permission validation: Ensures files are readable
  • File type validation: Validates CBOR and JSON file formats
  • Empty file detection: Prevents processing empty files
  • Directory vs file validation: Ensures paths point to files

Validation features:

  • Evidence file validation: .cbor extension + basic CBOR format check
  • Key file validation: .json extension + JWK format validation
  • Enhanced error messages: More descriptive and user-friendly errors

New functions added:

  • validateInputFile(): Main validation orchestrator
  • validateEvidenceFile(): CBOR-specific validation
  • validateKeyFile(): JWK-specific validation
  • isValidCBORStart(): Basic CBOR format detection

The checkGenCorimArgs() function has been updated to use these new validation functions, providing multiple security layers before file processing begins.

Comprehensive test coverage added with 20+ test cases covering:

  • Path traversal attacks
  • File size limits
  • Permission errors
  • Invalid file formats
  • Empty files
  • Directory vs file confusion
  • Edge cases and security scenarios

Fixes #11

This commit implements comprehensive validation for input files to address
security vulnerabilities and improve robustness as described in issue veraison#11.

Security features added:
- Path traversal protection: Detects and blocks ../.. patterns
- File size limits: 10MB maximum to prevent resource exhaustion
- File permission validation: Ensures files are readable
- File type validation: Validates CBOR and JSON file formats
- Empty file detection: Prevents processing empty files
- Directory vs file validation: Ensures paths point to files

Validation features:
- Evidence file validation: .cbor extension + basic CBOR format check
- Key file validation: .json extension + JWK format validation
- Enhanced error messages: More descriptive and user-friendly errors

New functions added:
- validateInputFile(): Main validation orchestrator
- validateEvidenceFile(): CBOR-specific validation
- validateKeyFile(): JWK-specific validation
- isValidCBORStart(): Basic CBOR format detection

The checkGenCorimArgs() function has been updated to use these new
validation functions, providing multiple security layers before
file processing begins.

Comprehensive test coverage added with 20+ test cases covering:
- Path traversal attacks
- File size limits
- Permission errors
- Invalid file formats
- Empty files
- Directory vs file confusion
- Edge cases and security scenarios

Fixes veraison#11

Signed-off-by: Kallal Mukherjee <ritamukherje62@gmail.com>
@kallal79 kallal79 force-pushed the feature/comprehensive-input-validation branch from 4f23fc1 to fbd968f Compare September 21, 2025 21:49
@kallal79
Copy link
Copy Markdown
Author

kallal79 commented Oct 2, 2025

Hi sir @thomas-fossati @setrofim @carl-wallace @yogeshbdeshpande —could you please review and approve when convenient?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Comprehensive Input File Validation and Security Checks

1 participant