# Autofix for Open Source Deps: Extended Lifetime Support

Updating to the latest version of an open source dependency can be a difficult task as breaking changes require application changes. When updating to the latest version of a package is not a viable option, you can stay secure by using hardened libraries or Aikido's Extended Lifetime Support (ELS).

Aikido offers a catalog of packages that solve security issues in versions of packages that are no longer maintained. These packages are drop-in replacements and don't require application changes.

For example the 1.x versions of log4j have been out of maintenance since 2015, but are still used in many projects. Updating these projects to log4j 2.x is infeasible in many cases. 1.2.17 is the latest 1.x version of log4j, it contains the following critical CVEs:

* [CVE-2019-17571](https://nvd.nist.gov/vuln/detail/cve-2019-17571) - remote code execution
* &#x20;[CVE-2020-9493](https://nvd.nist.gov/vuln/detail/cve-2020-9493) - malicious code execution
* [CVE-2022-23305](https://nvd.nist.gov/vuln/detail/cve-2022-23305) - SQL injection

Our ELS version of log4j 1.2.17 fixes these critical CVEs without introducing breaking changes.

The ELS packages are created by [TuxCare](https://tuxcare.com/). TuxCare specializes in End-Of-Life security and ports patches to unmaintained versions of packages.

## AutoFix for Open Source Dependencies

Aikido AutoFix for open source dependencies will automatically propose an upgrade to an ELS version where available. This is visible on the [AutoFix dependency overview](https://app.aikido.dev/issues/fix) screen. The Java ELS packages are hosted on `maven.aikido.io`.

<figure><img src="https://3149773201-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyKbzcQGrx7UtrG0nPZZ7%2Fuploads%2FLTBeaI0XKmD0nD6OHfG1%2Fimage.png?alt=media&#x26;token=0714e317-f44a-4a38-8502-a61030f399ac" alt=""><figcaption></figcaption></figure>

In order to then upgrade to the ELS version, you need to select this option in the AutoFix creation modal.

<figure><img src="https://3149773201-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyKbzcQGrx7UtrG0nPZZ7%2Fuploads%2FMZLioDELyaWw8A8fqZfj%2Fimage.png?alt=media&#x26;token=46b331eb-ec00-49dc-8096-abb8ba4da1e9" alt=""><figcaption></figcaption></figure>

## Availability

ELS packages are currently available for Java, JavaScript and Python. Supported packages are listed below

<details>

<summary>JavaScript </summary>

angular\
bootstrap\
braces\
copy-anything\
crypto-js\
express-jwt\
form-data\
formidable\
i18next\
ip\
jsonpath-plus\
jsonwebtoken\
jspdf\
lodash\
lodash.template\
marked\
mongodb\
multer\
mysql2\
picocolors\
quill\
request\
rollup\
sentry-browser\
ssr-window\
tough-cookie\
undici\
vue-template-compiler\
webpack

</details>

<details>

<summary>Java</summary>

com.google.guava:guava\
com.google.protobuf:protobuf-java\
com.squareup.okio:okio\
commons-httpclient:commons-httpclient\
dom4j:dom4j\
log4j:log4j\
org.apache.hadoop:hadoop-common\
org.apache.hive:hive-exec\
org.apache.thrift:libthrift\
org.apache.tomcat:tomcat-catalina\
org.apache.velocity:velocity\
org.codehaus.jackson:jackson-mapper-asl\
org.springframework.boot:spring-boot-starter-actuator\
org.springframework:spring-webmvc\
org.yaml:snakeyaml

</details>

<details>

<summary>Python</summary>

anyio\
cryptography\
django\
flask\
future\
gunicorn\
idna\
jinja2\
pillow\
pymongo\
setuptools\
statsmodels\
waitress\
werkzeug

</details>
