You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Initial plan
* Add security protections for CVE-2025-12735, CVE-2025-13204, and Issue silentmatt#289
- Block arbitrary function calls passed via evaluation context
- Block prototype pollution via __proto__, prototype, constructor access
- Block member function call bypass vulnerability
- Allow inline-defined functions (IFUNDEF) as they are safe
- Allow registered functions in parser.functions
- Allow safe Math functions (sin, cos, sqrt, etc.)
- Update tests to use secure function registration pattern
- Add comprehensive security test suite
Co-authored-by: Sander-Toonen <5106372+Sander-Toonen@users.noreply.github.com>
* Fix code review issues: add validateAllowedFunction to IFUNCALL, use counter-based keys for inline functions
- Add validateAllowedFunction check in IFUNCALL handler to prevent bypassing security
- Use monotonically increasing counter for inline function keys instead of user-controlled names
- Prevent collision attacks on inline function registration
Co-authored-by: Sander-Toonen <5106372+Sander-Toonen@users.noreply.github.com>
* Update tests to use secure function registration pattern and add BREAKING_CHANGES.md
- Update remaining 2 tests in operators-logical.ts to register functions in parser.functions
- Add comprehensive BREAKING_CHANGES.md documenting security changes and migration guide
Co-authored-by: Sander-Toonen <5106372+Sander-Toonen@users.noreply.github.com>
* Fix TypeScript type error in security test
Change empty function to return number to satisfy Value type constraint
Co-authored-by: Sander-Toonen <5106372+Sander-Toonen@users.noreply.github.com>
* Bump version to 5.0.0 for breaking changes per semantic versioning
- Update package.json version from 4.2.0 to 5.0.0
- Update BREAKING_CHANGES.md to reference version 5.0.0
- Update package-lock.json accordingly
Co-authored-by: Sander-Toonen <5106372+Sander-Toonen@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Sander-Toonen <5106372+Sander-Toonen@users.noreply.github.com>
This document lists breaking changes in the library to help users migrate between versions.
4
+
5
+
## Version 5.0.0
6
+
7
+
### Security: Functions Must Be Registered Explicitly
8
+
9
+
**Background**: This change addresses critical security vulnerabilities:
10
+
-[CVE-2025-12735](https://github.com/advisories/GHSA-jc85-fpwf-qm7x) - Code injection via arbitrary function calls
11
+
-[CVE-2025-13204](https://github.com/advisories) - Prototype pollution via `__proto__`, `prototype`, `constructor` access
12
+
-[silentmatt/expr-eval#289](https://github.com/silentmatt/expr-eval/issues/289) - Member function call bypass
13
+
14
+
**What Changed**: Functions can no longer be passed directly via the evaluation context. All functions that need to be called from expressions must be explicitly registered in `parser.functions`.
0 commit comments