|
| 1 | +# YUI |
| 2 | + |
| 3 | +Endless Lifecycle Support (ELS) for YUI from TuxCare provides security fixes for YUI versions that have reached their end of life. This allows you to continue running YUI applications without vulnerability concerns, even after official support has ended. |
| 4 | + |
| 5 | +## Supported YUI Versions |
| 6 | + |
| 7 | +* YUI 3.18.1 |
| 8 | + |
| 9 | +## Connection to ELS for YUI Library |
| 10 | + |
| 11 | +This guide outlines the steps needed to integrate the TuxCare ELS for the YUI library. |
| 12 | + |
| 13 | +## Step 1: Get Token |
| 14 | + |
| 15 | +You need a token in order to use TuxCare ELS YUI library. Anonymous access is disabled. To receive the token, please contact [sales@tuxcare.com](mailto:sales@tuxcare.com). |
| 16 | + |
| 17 | +## Step 2: Set Up ELS for YUI |
| 18 | + |
| 19 | +TuxCare provides ELS for YUI 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 YUI project. |
| 22 | +2. Create a `.npmrc` file or update it if it already exists. |
| 23 | + |
| 24 | + **Example:** |
| 25 | + |
| 26 | + ```text |
| 27 | + my-yui-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 [sales@tuxcare.com](mailto:sales@tuxcare.com). |
| 48 | + ::: |
| 49 | + |
| 50 | +4. Update your `package.json` file to add the following overrides for the TuxCare packages: |
| 51 | + |
| 52 | + <CodeWithCopy> |
| 53 | + |
| 54 | + ```text |
| 55 | + "overrides": { |
| 56 | + "hoek@0.9.1": "npm:@els-js/hoek@0.9.1-tuxcare.1", |
| 57 | + "mime@1.2.11": "npm:@els-js/mime@1.2.11-tuxcare.1", |
| 58 | + "tunnel-agent@0.4.3": "npm:@els-js/tunnel-agent@0.4.3-tuxcare.1", |
| 59 | + "qs@1.0.2": "npm:@els-js/qs@1.0.2-tuxcare.1", |
| 60 | + "hawk@1.1.1": "npm:@els-js/hawk@1.1.1-tuxcare.1", |
| 61 | + "form-data@0.1.4": "npm:@els-js/form-data@0.1.4-tuxcare.1" |
| 62 | + } |
| 63 | + ``` |
| 64 | + |
| 65 | + </CodeWithCopy> |
| 66 | + |
| 67 | +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: |
| 68 | + |
| 69 | + <CodeWithCopy> |
| 70 | + |
| 71 | + ```text |
| 72 | + rm -rf node_modules package-lock.json && npm cache clean --force |
| 73 | + ``` |
| 74 | + |
| 75 | + </CodeWithCopy> |
| 76 | + |
| 77 | +6. Run the following command to install the ELS version of the YUI library (token for the TuxCare repository will be automatically picked up from your `.npmrc` file): |
| 78 | + |
| 79 | + <CodeWithCopy> |
| 80 | + |
| 81 | + ```text |
| 82 | + npm install |
| 83 | + ``` |
| 84 | + |
| 85 | + </CodeWithCopy> |
| 86 | + |
| 87 | +## Step 3: Verify Installation |
| 88 | + |
| 89 | +1. To confirm the TuxCare YUI library is set up correctly, use npm to list the project's dependencies: |
| 90 | + |
| 91 | + <CodeWithCopy> |
| 92 | + |
| 93 | + ```text |
| 94 | + npm list |
| 95 | + ``` |
| 96 | + |
| 97 | + </CodeWithCopy> |
| 98 | + |
| 99 | +2. After reviewing the dependencies, run your application to ensure everything works correctly. |
| 100 | + |
| 101 | +The `npm` tool should be able to identify and resolve dependencies from the TuxCare ELS for YUI repository. |
| 102 | + |
| 103 | +## Vulnerability Exploitability eXchange (VEX) |
| 104 | + |
| 105 | +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. |
| 106 | + |
| 107 | +TuxCare provides VEX for YUI ELS versions: [security.tuxcare.com/vex/cyclonedx/els_lang_javascript/yui/](https://security.tuxcare.com/vex/cyclonedx/els_lang_javascript/yui/). |
| 108 | + |
| 109 | +## How to Upgrade to a Newer Version of TuxCare Packages |
| 110 | + |
| 111 | +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 manually update the version strings in your `package.json`, then remove installed files and clear npm cache to avoid conflicts: |
| 112 | + |
| 113 | + <CodeWithCopy> |
| 114 | + |
| 115 | + ```text |
| 116 | + rm -rf node_modules package-lock.json && npm cache clean --force |
| 117 | + npm install |
| 118 | + ``` |
| 119 | + |
| 120 | + </CodeWithCopy> |
| 121 | + |
| 122 | +## Resolved CVEs |
| 123 | + |
| 124 | +Fixes for the following vulnerabilities are available in ELS for YUI from TuxCare versions: |
| 125 | + |
| 126 | +| CVE ID | CVE Type | Severity | Affected Libraries | Vulnerable Versions | |
| 127 | +|:-------------:|:---------:|:--------:|:------------------:|:-------------------:| |
| 128 | +| CVE-2018-3728 | Transitive | High | hoek | < 4.2.0, >= 5.0.0 < 5.0.3 | |
| 129 | +| CVE-2020-36604 | Transitive | High | hoek | < 8.5.1, >= 9.0 < 9.0.3 | |
| 130 | +| CVE-2017-16138 | Transitive | High | mime | < 1.4.1, >= 2.0.1 < 2.0.3 | |
| 131 | +| GHSA-xc7v-wxcw-j472 | Transitive | High | tunnel-agent | < 0.6.0 | |
| 132 | +| CVE-2022-24999 | Transitive | High | qs | - | |
| 133 | +| CVE-2017-1000048 | Transitive | High | qs | - | |
| 134 | +| CVE-2022-29167 | Transitive | High | hawk | < 9.0.1 | |
| 135 | +| CVE-2016-2515 | Transitive | High | hawk | 3.1.2, 4.1.0 | |
| 136 | +| CVE-2025-7783 | Transitive | Critical | form-data | - | |
| 137 | + |
| 138 | +If you are interested in the TuxCare Endless Lifecycle Support, contact [sales@tuxcare.com](mailto:sales@tuxcare.com). |
| 139 | + |
0 commit comments