Skip to content

[Security] Insufficient Input Sanitization in REST API #30

@pbking

Description

@pbking

Security Issue: Insufficient Input Sanitization in REST API

Description

User input from REST API requests is not consistently sanitized before database operations, which could lead to potential XSS or SQL injection vulnerabilities.

Affected Files

  • class-pattern-builder-api.php:388-459

Risk Level

Critical - Unsanitized user input could lead to stored XSS attacks or data corruption.

Current Issues

  • Title fields are not sanitized with sanitize_text_field()
  • HTML content lacks proper sanitization with wp_kses_post()
  • Array inputs are not sanitized with array_map() and appropriate sanitization functions

Recommendations

  1. Add sanitize_text_field() for all title and text-only fields
  2. Use wp_kses_post() for content fields that allow HTML
  3. Sanitize array inputs using array_map() with appropriate sanitization callbacks
  4. Validate data types before processing (strings, arrays, integers)

Implementation Steps

  • Audit all REST API endpoints for input handling
  • Add sanitization layer to all user inputs before database operations
  • Implement input validation for expected data types
  • Add unit tests for input sanitization
  • Document expected input formats in API documentation

Code Example

// Before
$title = $request->get_param('title');

// After
$title = sanitize_text_field($request->get_param('title'));

References

Priority: Immediate fix required

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions