wavexis is under active development. Security fixes are applied to the latest release only.
| Version | Supported |
|---|---|
| 2.16.x | Yes |
| < 2.16 | No |
If you discover a security vulnerability in wavexis, please report it responsibly:
- Do not open a public GitHub issue
- Email mathias.paulenko@outlook.com with:
- A description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
- You will receive a response within 48 hours
wavexis wraps cdpwave and bidiwave to control browsers via CDP and WebDriver BiDi. Keep the following in mind:
- Remote debugging port: wavexis uses
--remote-debugging-portvia cdpwave which exposes a WebSocket endpoint. In production, ensure this port is not accessible to untrusted networks. - Arbitrary JavaScript execution:
wavexis evalexecutes arbitrary JavaScript in the browser context. Only run trusted code. Inservemode,/evaland/wsare only registered when--api-keyis provided. - Browser subprocess: The browser process inherits the permissions of the user running the Python script. Run with least privilege.
- URL navigation:
wavexis screenshotand other commands can open any URL. Inservemode, navigation URLs are validated to allow onlyhttp,https,about, anddataschemes;javascript:andfile:are rejected. - Auth context: The
--authflag loads cookies and headers from a JSON file. Do not commit auth context files to version control. Auth context files should include atarget_originfield so credentials are only sent to the intended origin. - File path access in serve mode: When running
wavexis serve --base-dir, file paths referenced by actions are restricted to that directory. Do not run the server without--api-keyor--base-dirin untrusted environments. - Environment variables in multi configs: YAML
{{env.KEY}}substitutions are limited to the comma-separated list inWAVEXIS_ENV_ALLOWLIST.
- Vulnerabilities are disclosed after a fix is released
- Credit is given to the reporter (unless they prefer to remain anonymous)