Skip to content

Security: WavestormSoftware/WavePHP

Security

SECURITY.md

Security Policy

WavePHP takes security seriously. We aim to ship a framework that is secure by default and easy to audit.

Supported versions

Version Supported
0.1.x Yes
0.0.x No

Reporting a vulnerability

Please do not file a public issue for security bugs.

Email: security@wavestorm.example (Replace with the real address in your fork.)

We acknowledge security reports within 1 business day. We aim to provide a fix or mitigation plan within 7 days. We will coordinate with you on the disclosure date.

When reporting, please include:

  • A clear description of the issue and its impact.
  • Steps to reproduce (preferably with a minimal PoC).
  • The WavePHP version, PHP version, and OS.
  • Any known workarounds.

What we will do

  1. Acknowledge the report within 1 business day.
  2. Investigate and reproduce.
  3. Develop a fix on a private branch.
  4. Coordinate a disclosure date with you.
  5. Release a security patch with a public CVE if appropriate.
  6. Credit you in the changelog (unless you'd prefer to stay anonymous).

Security posture

The framework ships with the following controls on by default:

  • SQL injection — every identifier is regex-checked; every value is bound through PDO prepared statements.
  • XSS.wave templates escape by default.
  • CSRFCsrfGuard middleware for state-changing requests.
  • Session fixationSessionGuard::login() regenerates the session ID.
  • Path traversalLocalStorageDisk walks ancestors and uses realpath to confine paths to the storage root.
  • Header injectionSmtpMailDriver sanitizes every header, address, and SMTP command argument.
  • JWT — pinned to HS256; alg=none is rejected; signature compared with hash_equals.
  • Password hashingpassword_hash with PASSWORD_BCRYPT or PASSWORD_ARGON2ID.
  • Random numbersrandom_bytes and random_int throughout.
  • Rate limitingthrottle:N,M middleware for sensitive endpoints.
  • CookiesHttpOnly, SameSite=Lax, Secure (when HTTPS).

You must also:

  • Keep PHP updated.
  • Use HTTPS in production.
  • Set APP_DEBUG=false in production.
  • Rotate secrets.
  • Audit third-party Composer packages.
  • Run composer audit regularly.

What we will NOT do

  • We will not silently fix a security issue without a CVE and a public changelog entry.
  • We will not hold a fix hostage for an extended embargo.
  • We will not share your report with third parties without your permission.

Acknowledgements

We thank the following security researchers for responsible disclosures:

(No entries yet.)

Out-of-scope

The following are out of scope for security reports against the framework itself:

  • Bugs in your application code.
  • Bugs in third-party Composer packages.
  • Social engineering attacks against you or your users.
  • Denial of service against your own infrastructure.

For these, please engage a security audit firm.

There aren't any published security advisories