v1.8.3
Expensify/Appv1.8.3Apr 7, 2026by lfnovo
AI Summary
Security release fixing SurrealDB injection vulnerability via unsanitized order_by query parameter. Added defensive validations and replaced unsafe query interpolation with parameterized binding.
Key Highlights
- Fixed SurrealDB injection via unsanitized order_by parameter (CVSS 8.7 High)
- Added allowlist validation for sorting parameters in notebooks endpoint
- Replaced f-string query interpolation with parameterized $variable binding
- Added defensive validation in get_all() base method
- Exploitable via CSRF by tricking users into clicking crafted URLs
New Features
- Security fixes for SQL injection vulnerabilities
- Parameterized query binding for source chat and migration queries
Full Release Notes
## Security - **Fix SurrealDB injection via unsanitized `order_by` query parameter** (CVSS 8.7 High) - `GET /api/notebooks` accepted arbitrary input in the `order_by` parameter, allowing injection of SurrealQL commands. Exploitable via CSRF by tricking a user into clicking a crafted URL. - Added allowlist validation for sorting parameters in the notebooks endpoint - Replaced f-string query interpolation with parameterized `$variable` binding in source chat and migration queries - Added defensive validation in the `get_all()` base method to prevent injection via `order_by` parameter ### Affected versions All versions up to and including v1.8.2. ### Recommended action Upgrade to v1.8.3 immediately. ### Credit Reported by [CERT-EU](https://cert.europa.eu) Offensive Security Team via coordinated vulnerability disclosure.