|
| 1 | +# koa |
| 2 | + |
| 3 | +Endless Lifecycle Support (ELS) for koa from TuxCare provides security fixes for koa versions that have reached their end of life. This allows you to continue running koa applications without vulnerability concerns, even after official support has ended. |
| 4 | + |
| 5 | +## Supported koa Versions |
| 6 | + |
| 7 | +* koa 1.7.1 |
| 8 | + |
| 9 | +## Connection to ELS for koa Library |
| 10 | + |
| 11 | +This guide outlines the steps needed to integrate the TuxCare ELS for the koa library. |
| 12 | + |
| 13 | +## Step 1: Get Token |
| 14 | + |
| 15 | +You need a token in order to use TuxCare ELS koa library. Anonymous access is disabled. To receive the token, please contact [[email protected]](mailto:[email protected]). |
| 16 | + |
| 17 | +## Step 2: Set Up ELS for koa |
| 18 | + |
| 19 | +TuxCare provides ELS for koa as an NPM package, hosted on a secure internal registry. Follow the steps below to add it to your project and get started. |
| 20 | + |
| 21 | +1. Navigate to the root directory of your koa project. |
| 22 | +2. Create a `.npmrc` file or update it if it already exists. |
| 23 | + |
| 24 | + **Example:** |
| 25 | + |
| 26 | + ```text |
| 27 | + my-koa-project/ |
| 28 | + ├── node_modules/ |
| 29 | + ├── package.json |
| 30 | + ├── .npmrc ⚠️ ← Create it here |
| 31 | + └── package-lock.json |
| 32 | + ``` |
| 33 | + |
| 34 | +3. Use an editor of your choice (e.g., VS Code) to add the following registry address line: |
| 35 | + |
| 36 | + <CodeWithCopy> |
| 37 | + |
| 38 | + ```text |
| 39 | + registry=https://registry.npmjs.org/ |
| 40 | + @els-js:registry=https://nexus.repo.tuxcare.com/repository/els_js/ |
| 41 | + //nexus.repo.tuxcare.com/repository/els_js/:_auth=${TOKEN} |
| 42 | + ``` |
| 43 | + |
| 44 | + </CodeWithCopy> |
| 45 | + |
| 46 | + :::warning |
| 47 | + Replace ${TOKEN} with the token you received from [[email protected]](mailto:[email protected]). |
| 48 | + ::: |
| 49 | + |
| 50 | +4. Update your `package.json` file to replace your koa dependencies with the TuxCare packages. You can do this in two ways: |
| 51 | + |
| 52 | + * **Option 1: TuxCare Patcher (Automated)** |
| 53 | + |
| 54 | + Install the Patcher globally and run it. The TuxCare Patcher automatically detects the koa version in your `package.json` and updates your `dependencies` and `overrides` to use the corresponding TuxCare `@els-js/*` packages. |
| 55 | + |
| 56 | + <CodeWithCopy> |
| 57 | + |
| 58 | + ```text |
| 59 | + npm install -g @els-js/tuxcare-patcher --userconfig ./.npmrc |
| 60 | + tuxcare-patch-js |
| 61 | + ``` |
| 62 | +
|
| 63 | + </CodeWithCopy> |
| 64 | +
|
| 65 | + The patcher will update your `package.json`, for example, from: |
| 66 | +
|
| 67 | + ```text |
| 68 | + "dependencies": { |
| 69 | + "koa": "^1.7.1" |
| 70 | + } |
| 71 | + ``` |
| 72 | +
|
| 73 | + to: |
| 74 | +
|
| 75 | + ```text |
| 76 | + "dependencies": { |
| 77 | + "koa": "npm:@els-js/[email protected]" |
| 78 | + }, |
| 79 | + "overrides": { |
| 80 | + |
| 81 | + } |
| 82 | + ``` |
| 83 | + |
| 84 | + * **Option 2: Manual Update** |
| 85 | +
|
| 86 | + Manually update your `package.json` file by replacing your koa dependencies with the TuxCare packages. This method gives you full control over which packages to update. |
| 87 | +
|
| 88 | + <CodeWithCopy> |
| 89 | +
|
| 90 | + ```text |
| 91 | + "dependencies": { |
| 92 | + "koa": "npm:@els-js/[email protected]" |
| 93 | + } |
| 94 | + ``` |
| 95 | +
|
| 96 | + </CodeWithCopy> |
| 97 | +
|
| 98 | +5. You need to remove the `node_modules` directory and the `package-lock.json` file, and also clear the `npm cache` before installing the patched packages. Use the following commands: |
| 99 | + |
| 100 | + <CodeWithCopy> |
| 101 | +
|
| 102 | + ```text |
| 103 | + rm -rf node_modules package-lock.json && npm cache clean --force |
| 104 | + ``` |
| 105 | + |
| 106 | + </CodeWithCopy> |
| 107 | + |
| 108 | +6. Run the following command to install the ELS version of the koa library (token for the TuxCare repository will be automatically picked up from your `.npmrc` file): |
| 109 | + |
| 110 | + <CodeWithCopy> |
| 111 | + |
| 112 | + ```text |
| 113 | + npm install |
| 114 | + ``` |
| 115 | + |
| 116 | + </CodeWithCopy> |
| 117 | + |
| 118 | + You will see an output like: |
| 119 | + |
| 120 | + ```text |
| 121 | + added 1 package, and audited 2 packages in 792ms |
| 122 | + |
| 123 | + found 0 vulnerabilities |
| 124 | + ``` |
| 125 | + |
| 126 | +7. You've successfully installed the Tuxcare ELS version of the koa library into your project. |
| 127 | + |
| 128 | +## Vulnerability Exploitability eXchange (VEX) |
| 129 | + |
| 130 | +VEX is a machine-readable format that tells you if a known vulnerability and is actually exploitable in your product. It reduces false positives, helps prioritize real risks. |
| 131 | + |
| 132 | +TuxCare provides VEX for koa ELS versions: [security.tuxcare.com/vex/cyclonedx/els_lang_javascript/koa/](https://security.tuxcare.com/vex/cyclonedx/els_lang_javascript/koa/). |
| 133 | + |
| 134 | +## How to Upgrade to a Newer Version of TuxCare Packages |
| 135 | + |
| 136 | +If you have already installed a package with a `tuxcare.1` suffix and want to upgrade to a newer release (for example, `tuxcare.3`), you can use one of the following methods: |
| 137 | + |
| 138 | +* **Option 1: TuxCare Patcher (Automated). Recommended for projects with multiple TuxCare dependencies.** |
| 139 | + |
| 140 | + The TuxCare Patcher automatically detects all TuxCare dependencies in your `package.json` and updates them to the latest available versions. |
| 141 | + |
| 142 | + <CodeWithCopy> |
| 143 | + |
| 144 | + ```text |
| 145 | + tuxcare-patch-js --upgrade |
| 146 | + ``` |
| 147 | + |
| 148 | + </CodeWithCopy> |
| 149 | + |
| 150 | +* **Option 2: Manual Update via CLI (Single Dependency)** |
| 151 | + |
| 152 | + If you want to update a single TuxCare dependency, use the npm install command with the specific version. This automatically updates both `package.json` and `package-lock.json`: |
| 153 | + |
| 154 | + <CodeWithCopy> |
| 155 | + |
| 156 | + ```text |
| 157 | + npm install koa@npm:@els-js/[email protected] |
| 158 | + ``` |
| 159 | + |
| 160 | + </CodeWithCopy> |
| 161 | + |
| 162 | +* **Option 3: Manual Update via package.json (Multiple Dependencies)** |
| 163 | + |
| 164 | + If you want to update several TuxCare dependencies, manually update the version strings in your `package.json`, then remove installed files and clear npm cache to avoid conflicts: |
| 165 | + |
| 166 | + <CodeWithCopy> |
| 167 | + |
| 168 | + ```text |
| 169 | + rm -rf node_modules package-lock.json && npm cache clean --force |
| 170 | + npm install |
| 171 | + ``` |
| 172 | + |
| 173 | + </CodeWithCopy> |
| 174 | + |
| 175 | +## Resolved CVEs |
| 176 | + |
| 177 | +Fixes for the following vulnerabilities are available in ELS for koa from TuxCare versions: |
| 178 | + |
| 179 | +| CVE ID | CVE Type | Severity | Affected Libraries | Vulnerable Versions | |
| 180 | +| :------------: | :------: |:--------:|:------------------:| :----------------: | |
| 181 | +| CVE-2025-32379 | Direct | Medium | koa | < 2.16.1, < 3.0.0-alpha.5 | |
| 182 | + |
| 183 | +If you are interested in the TuxCare Endless Lifecycle Support, contact [[email protected]](mailto:[email protected]). |
| 184 | + |
0 commit comments