# Dependency Confusion
{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** ЁЯТм [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** ЁЯРж [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
{% embed url="https://websec.nl/" %}
## Basic Information
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдПрдХ dependency confusion vulnerability рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ **рдЧрд▓рдд рд╕реНрдкреЗрд▓рд┐рдВрдЧ** рдирд╛рдо, **рдЕрд╕реНрддрд┐рддреНрд╡рд╣реАрди** рдпрд╛ **рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рдВрд╕реНрдХрд░рдг** рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА dependency repository **рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ** repositories рд╕реЗ **рдЕрдкрдбреЗрдЯреЗрдб рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ** рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
* **рдЧрд▓рдд рд╕реНрдкреЗрд▓рд┐рдВрдЧ**: Import **`reqests`** instead of `requests`
* **рдЕрд╕реНрддрд┐рддреНрд╡рд╣реАрди**: Import `company-logging`, рдПрдХ рдЖрдВрддрд░рд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛ **рдЕрдм рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ**
* **рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рдВрд╕реНрдХрд░рдг**: Import an **internal** **existent** `company-requests` рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рд▓реЗрдХрд┐рди repo **рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ repos** рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╡рд╣рд╛рдБ **рдмрдбрд╝реЗ рд╕рдВрд╕реНрдХрд░рдг** рд╣реИрдВред
## Exploitation
{% hint style="warning" %}
рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ **рджреБрд╖реНрдЯ рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо** рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдкреАрдбрд╝рд┐рдд рдХрдВрдкрдиреА рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдирд╛рдо рд╣реИред
{% endhint %}
### Misspelled & Inexistent
рдпрджрд┐ рдЖрдкрдХреА рдХрдВрдкрдиреА рдПрдХ **рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реА рд╣реИ рдЬреЛ рдЖрдВрддрд░рд┐рдХ рдирд╣реАрдВ рд╣реИ**, рддреЛ рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ repo рдЗрд╕реЗ **рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ repositories** рдореЗрдВ рдЦреЛрдЬрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдиреЗ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХрд╛ рдХреЛрдб рдФрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдорд╢реАрдиреЗрдВ рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╕рдордЭреМрддрд╛ рдХреА рдЬрд╛рдПрдВрдЧреАред
### Unspecified Version
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рд╕рд╛рдорд╛рдиреНрдп рд╣реИ рдХрд┐ рд╡реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ **рдХреЛрдИ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ** рд╣реИрдВ, рдпрд╛ рдХреЗрд╡рд▓ рдПрдХ **рдореЗрдЬрд░ рд╕рдВрд╕реНрдХрд░рдг** рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░, рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдЙрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ **рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг** рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ред\
рдпрджрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдХ **рдЬреНрдЮрд╛рдд рдмрд╛рд╣рд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА** рд╣реИ (рдЬреИрд╕реЗ python `requests`), рддреЛ рдПрдХ **рд╣рдорд▓рд╛рд╡рд░ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛**, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ `requests` рдирд╛рдо рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╣реАрдВ рдмрдирд╛ рд╕рдХреЗрдЧрд╛ (рдЬрдм рддрдХ рдХрд┐ рд╡рд╣ рдореВрд▓ рд▓реЗрдЦрдХ рди рд╣реЛ)ред\
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА **рдЖрдВрддрд░рд┐рдХ** рд╣реИ, рдЬреИрд╕реЗ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ `requests-company`, рдпрджрд┐ **рд▓рд╛рдЗрдмреНрд░реЗрд░реА repo** рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ **рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ** рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдПрдХ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ред\
рддреЛ рдпрджрд┐ рдПрдХ **рд╣рдорд▓рд╛рд╡рд░ рдЬрд╛рдирддрд╛ рд╣реИ** рдХрд┐ рдХрдВрдкрдиреА `requests-company` рд▓рд╛рдЗрдмреНрд░реЗрд░реА **рд╕рдВрд╕реНрдХрд░рдг 1.0.1** рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реА рд╣реИ (рдЫреЛрдЯреЗ рдЕрдкрдбреЗрдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ)ред рд╡рд╣ **рд▓рд╛рдЗрдмреНрд░реЗрд░реА** `requests-company` **рд╕рдВрд╕реНрдХрд░рдг 1.0.2** рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХрдВрдкрдиреА рдЙрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ **рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧреА** рдмрдЬрд╛рдп рдЖрдВрддрд░рд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗред
## AWS Fix
рдпрд╣ vulnerability AWS **CodeArtifact** рдореЗрдВ рдкрд╛рдИ рдЧрдИ рдереА (рдкрдврд╝реЗрдВ [**рдЗрд╕ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдореЗрдВ рд╡рд┐рд╡рд░рдг**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
AWS рдиреЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдВрддрд░рд┐рдХ рд╣реИ рдпрд╛ рдмрд╛рд╣рд░реА, рддрд╛рдХрд┐ рдмрд╛рд╣рд░реА repositories рд╕реЗ рдЖрдВрддрд░рд┐рдХ dependencies рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХреЗред
## Finding Vulnerable Libraries
[**Dependency confusion рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореВрд▓ рдкреЛрд╕реНрдЯ**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) рдореЗрдВ рд▓реЗрдЦрдХ рдиреЗ рд╣рдЬрд╛рд░реЛрдВ рдПрдХреНрд╕рдкреЛрдЬрд╝ рдХрд┐рдП рдЧрдП package.json рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдЬреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА dependencies рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреА рд╣реИрдВред
## References
* [https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610)
* [https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** ЁЯТм [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** ЁЯРж [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}