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
A reported vulnerability, [CVE-2025-65849](https://www.cve.org/CVERecord?id=CVE-2025-65849), is currently marked as *disputed* but is still flagged by vulnerability scanners such as `npm audit`.
6
+
As a result, version **2.3.0** moves the obfuscation and other plugins out of the main package into a new package: `@altcha/plugins`.
7
+
8
+
## Installation
9
+
10
+
If you use any plugins (such as obfuscation), install the new package explicitly:
11
+
12
+
```bash
13
+
npm install @altcha/plugins
14
+
```
15
+
16
+
If you do **not** use any plugins, no additional installation or code changes are required.
17
+
18
+
## Migration Steps
19
+
20
+
Plugins are no longer bundled with the main package and must be imported explicitly from `@altcha/plugins`.
21
+
22
+
**Before (≤ 2.2.4):**
23
+
24
+
```js
25
+
import'altcha/obfuscation';
26
+
import'altcha';
27
+
```
28
+
29
+
**After (≥ 2.3.0):**
30
+
31
+
```js
32
+
import'@altcha/plugins/obfuscation';
33
+
import'altcha';
34
+
```
35
+
36
+
If you are not importing any plugins, your existing setup continues to work unchanged.
37
+
38
+
## Rationale
39
+
40
+
The reported issue describes a cryptographic limitation (an algebraic bypass) of the AES-GCM authentication mechanism, not an exploitable vulnerability in the widget itself. This limitation cannot be mitigated within the widget’s scope.
41
+
42
+
To prevent false-positive reports in tools like `npm audit`, the affected obfuscation plugin has been extracted into a separate package. If you do not use obfuscation, version 2.3.0 removes the problematic code entirely. If you do use it, you must accept the documented limitations:
Copy file name to clipboardExpand all lines: README.md
+16-6Lines changed: 16 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,16 @@ ALTCHA is fully compliant with:
9
9
10
10
For more details, visit [altcha.org](https://altcha.org).
11
11
12
+
> [!NOTE]
13
+
> **Breaking change (v2.3.0)**
14
+
>
15
+
> As of version **2.3.0**, the obfuscation and other plugins have been removed from the main package and moved to a separate package: `@altcha/plugins`.
16
+
>
17
+
> If you do not use any plugins, no changes are required.
18
+
>
19
+
> See the [migration guide for v2.3.0](https://github.com/altcha-org/altcha/blob/main/MIGRATION-v2.3.0.md).
20
+
21
+
12
22
## Features
13
23
14
24
-**Frictionless Experience**: Uses proof-of-work (PoW) instead of visual puzzles for a seamless user experience.
@@ -60,7 +70,7 @@ Explore starter templates for popular frameworks:
60
70
61
71
## Plugins & CMS
62
72
63
-
-[Libraries and plugins](https://altcha.org/docs/integrations/)
73
+
-[Libraries and plugins](https://altcha.org/docs/v2/libraries/)
64
74
65
75
## Usage
66
76
@@ -103,11 +113,11 @@ Or load via `<script>` tag:
103
113
</form>
104
114
```
105
115
106
-
See [configuration options](#configuration) or the [website integration docs](https://altcha.org/docs/website-integration).
116
+
See [configuration options](#configuration) or the [website integration docs](https://altcha.org/docs/v2/widget-integration).
107
117
108
118
### 3. Integrate with Your Server
109
119
110
-
Refer to the [server documentation](https://altcha.org/docs/server-integration) for implementation details.
120
+
Refer to the [server documentation](https://altcha.org/docs/v2/server-integration) for implementation details.
111
121
112
122
## Supported Browsers
113
123
@@ -141,7 +151,7 @@ When GZIPped, it totals about 30 kB, making ALTCHA’s widget about 90% smaller
141
151
142
152
## Content Security Policy (CSP)
143
153
144
-
The default bundle includes styles and workers in a single file. For strict CSP compliance, use scripts from `/dist_external`. Learn more in the [documentation](https://altcha.org/docs/website-integration).
154
+
The default bundle includes styles and workers in a single file. For strict CSP compliance, use scripts from `/dist_external`. Learn more in the [documentation](https://altcha.org/docs/v2/widget-integration).
145
155
146
156
## Configuration
147
157
@@ -172,14 +182,14 @@ Additional options:
172
182
-**name**: Name of the hidden field containing the payload (defaults to "altcha").
-**overlaycontent**: CSS selector of the HTML element to display in the overlay modal before the widget.
175
-
-**strings**: JSON-encoded translation strings. Refer to [customization](https://altcha.org/docs/widget-customization).
185
+
-**strings**: JSON-encoded translation strings. Refer to [customization](https://altcha.org/docs/v2/widget-customization).
176
186
-**verifyurl**: URL for server-side verification requests. This option is automatically configured with Sentinel. Override this setting only if using a custom server implementation. Supports `fn:function_name` format to call a global JS function instead.
177
187
-**workers**: Number of workers to utilize for PoW (defaults to `navigator.hardwareConcurrency || 8`, max value `16`).
178
188
-**workerurl**: URL of the Worker script (defaults to `./worker.js`, only works with `external` build).
179
189
180
190
Data Obfuscation options:
181
191
182
-
-**obfuscated**: The [obfuscated data](https://altcha.org/docs/obfuscation) provided as a base64-encoded string (requires `altcha/obfuscation` plugin). Use only without `challengeurl`/`challengejson`.
192
+
-**obfuscated**: The [obfuscated data](https://altcha.org/docs/v2/obfuscation) provided as a base64-encoded string (requires `altcha/obfuscation` plugin). Use only without `challengeurl`/`challengejson`.
0 commit comments