@fabasoad/sarif-to-slack 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
- package/.github/pull_request_template.md +3 -3
- package/.github/workflows/linting.yml +14 -0
- package/.github/workflows/release.yml +5 -1
- package/.github/workflows/send-sarif-to-slack.yml +214 -0
- package/.github/workflows/unit-tests.yml +1 -0
- package/.pre-commit-config.yaml +3 -3
- package/.tool-versions +1 -1
- package/CONTRIBUTING.md +1 -1
- package/Makefile +10 -3
- package/README.md +36 -5
- package/biome.json +15 -12
- package/dist/Logger.js +17 -6
- package/dist/Processors.js +23 -22
- package/dist/SarifToSlackService.d.ts.map +1 -1
- package/dist/SarifToSlackService.js +6 -7
- package/dist/SlackMessageBuilder.js +51 -55
- package/dist/index.d.ts +9 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -5
- package/dist/model/SarifModelPerRun.d.ts +17 -0
- package/dist/model/SarifModelPerRun.d.ts.map +1 -0
- package/dist/model/SarifModelPerRun.js +84 -0
- package/dist/model/SarifModelPerSarif.d.ts +20 -0
- package/dist/model/SarifModelPerSarif.d.ts.map +1 -0
- package/dist/model/SarifModelPerSarif.js +97 -0
- package/dist/model/types.d.ts +17 -0
- package/dist/model/types.d.ts.map +1 -0
- package/dist/model/types.js +31 -0
- package/dist/sarif-to-slack.d.ts +121 -18
- package/dist/tsdoc-metadata.json +1 -1
- package/dist/types.d.ts +107 -15
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +73 -7
- package/dist/utils/SarifUtils.d.ts +5 -0
- package/dist/utils/SarifUtils.d.ts.map +1 -0
- package/dist/utils/SarifUtils.js +32 -0
- package/dist/utils/SortUtils.d.ts +5 -0
- package/dist/utils/SortUtils.d.ts.map +1 -0
- package/dist/utils/SortUtils.js +8 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +4 -0
- package/etc/sarif-to-slack.api.md +47 -9
- package/jest.config.json +4 -4
- package/package.json +14 -10
- package/scripts/save-version.sh +6 -0
- package/src/Logger.ts +22 -17
- package/src/Processors.ts +22 -22
- package/src/SarifToSlackService.ts +6 -7
- package/src/SlackMessageBuilder.ts +85 -68
- package/src/index.ts +17 -6
- package/src/model/SarifModelPerRun.ts +114 -0
- package/src/model/SarifModelPerSarif.ts +116 -0
- package/src/model/types.ts +31 -0
- package/src/types.ts +113 -15
- package/src/utils/SarifUtils.ts +44 -0
- package/src/utils/SortUtils.ts +21 -0
- package/src/version.ts +3 -0
- package/test-data/sarif/codeql-csharp.sarif +1 -0
- package/test-data/sarif/codeql-go.sarif +1 -0
- package/test-data/sarif/codeql-python.sarif +1 -0
- package/test-data/sarif/codeql-ruby.sarif +1 -0
- package/test-data/sarif/codeql-typescript.sarif +1 -0
- package/test-data/sarif/grype-container.sarif +1774 -0
- package/test-data/sarif/runs-1-tools-1-results-0.sarif +18 -0
- package/test-data/sarif/runs-2-tools-1-results-0.sarif +30 -0
- package/test-data/sarif/runs-2-tools-1.sarif +656 -0
- package/test-data/sarif/runs-2-tools-2-results-0.sarif +44 -0
- package/test-data/sarif/runs-2-tools-2.sarif +686 -0
- package/test-data/sarif/runs-3-tools-2-results-0.sarif +48 -0
- package/test-data/sarif/runs-3-tools-2.sarif +278 -0
- package/test-data/sarif/snyk-composer.sarif +934 -0
- package/test-data/sarif/snyk-container.sarif +313 -0
- package/test-data/sarif/snyk-gomodules.sarif +388 -0
- package/test-data/sarif/snyk-gradle.sarif +274 -0
- package/test-data/sarif/snyk-hex.sarif +66 -0
- package/test-data/sarif/snyk-maven.sarif +274 -0
- package/test-data/sarif/snyk-npm.sarif +896 -0
- package/test-data/sarif/snyk-nuget.sarif +90 -0
- package/test-data/sarif/snyk-pip.sarif +66 -0
- package/test-data/sarif/snyk-pnpm.sarif +90 -0
- package/test-data/sarif/snyk-poetry.sarif +1952 -0
- package/test-data/sarif/snyk-rubygems.sarif +440 -0
- package/test-data/sarif/snyk-sbt.sarif +178 -0
- package/test-data/sarif/snyk-swift.sarif +112 -0
- package/test-data/sarif/snyk-yarn.sarif +2900 -0
- package/test-data/sarif/trivy-iac.sarif +134 -0
- package/test-data/sarif/wiz-container.sarif +30916 -0
- package/test-data/sarif/wiz-iac.sarif +558 -0
- package/tests/Processors.spec.ts +3 -3
- package/tests/integration/SendSarifToSlack.spec.ts +56 -0
- package/tsconfig.json +14 -14
- package/dist/Logger.js.map +0 -1
- package/dist/Processors.js.map +0 -1
- package/dist/SarifToSlackService.js.map +0 -1
- package/dist/SlackMessageBuilder.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/types.js.map +0 -1
|
@@ -0,0 +1,1952 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
|
|
3
|
+
"version": "2.1.0",
|
|
4
|
+
"runs": [
|
|
5
|
+
{
|
|
6
|
+
"tool": {
|
|
7
|
+
"driver": {
|
|
8
|
+
"name": "Snyk Open Source",
|
|
9
|
+
"properties": {
|
|
10
|
+
"artifactsScanned": 30
|
|
11
|
+
},
|
|
12
|
+
"rules": [
|
|
13
|
+
{
|
|
14
|
+
"id": "SNYK-PYTHON-BABEL-1278589",
|
|
15
|
+
"shortDescription": {
|
|
16
|
+
"text": "Medium severity - Directory Traversal vulnerability in babel"
|
|
17
|
+
},
|
|
18
|
+
"fullDescription": {
|
|
19
|
+
"text": "(CVE-2021-42771) babel@2.8.0"
|
|
20
|
+
},
|
|
21
|
+
"help": {
|
|
22
|
+
"text": "",
|
|
23
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: babel\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › babel@2.8.0\n# Overview\n[Babel](https://pypi.org/project/Babel) is an Internationalization utilities\n\nAffected versions of this package are vulnerable to Directory Traversal. It allows an attacker to load arbitrary locale files on a disk and execute arbitrary code.\r\n\r\n**Note:**\r\nCVE-2021-20095 is a duplicate of CVE-2021-42771.\n\n# Details\n\nA Directory Traversal attack (also known as path traversal) aims to access files and directories that are stored outside the intended folder. By manipulating files with \"dot-dot-slash (../)\" sequences and its variations, or by using absolute file paths, it may be possible to access arbitrary files and directories stored on file system, including application source code, configuration, and other critical system files.\n\nDirectory Traversal vulnerabilities can be generally divided into two types:\n\n- **Information Disclosure**: Allows the attacker to gain information about the folder structure or read the contents of sensitive files on the system.\n\n`st` is a module for serving static files on web pages, and contains a [vulnerability of this type](https://snyk.io/vuln/npm:st:20140206). In our example, we will serve files from the `public` route.\n\nIf an attacker requests the following URL from our server, it will in turn leak the sensitive private key of the root user.\n\n```\ncurl http://localhost:8080/public/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/root/.ssh/id_rsa\n```\n**Note** `%2e` is the URL encoded version of `.` (dot).\n\n- **Writing arbitrary files**: Allows the attacker to create or replace existing files. This type of vulnerability is also known as `Zip-Slip`. \n\nOne way to achieve this is by using a malicious `zip` archive that holds path traversal filenames. When each filename in the zip archive gets concatenated to the target extraction folder, without validation, the final path ends up outside of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.\n\nThe following is an example of a `zip` archive with one benign file and one malicious file. Extracting the malicious file will result in traversing out of the target folder, ending up in `/root/.ssh/` overwriting the `authorized_keys` file:\n\n```\n2018-04-15 22:04:29 ..... 19 19 good.txt\n2018-04-15 22:04:42 ..... 20 20 ../../../../../../root/.ssh/authorized_keys\n```\n\n# Remediation\nUpgrade `Babel` to version 2.9.1 or higher.\n# References\n- [CVE Revocation Email](https://lists.debian.org/debian-lts/2021/10/msg00040.html)\n- [Github Commit](https://github.com/python-babel/babel/commit/3a700b5b8b53606fd98ef8294a56f9510f7290f8)\n- [Github Commit](https://github.com/python-babel/babel/commit/5caf717ceca4bd235552362b4fbff88983c75d8c)\n- [Github PR](https://github.com/python-babel/babel/pull/782)\n- [RedHat Bugzilla Bug](https://bugzilla.redhat.com/show_bug.cgi?id=1955615)\n- [Tenable PoC](https://www.tenable.com/security/research/tra-2021-14)\n"
|
|
24
|
+
},
|
|
25
|
+
"properties": {
|
|
26
|
+
"tags": [
|
|
27
|
+
"security",
|
|
28
|
+
"CWE-22",
|
|
29
|
+
"poetry"
|
|
30
|
+
],
|
|
31
|
+
"cvssv3_baseScore": 4.5,
|
|
32
|
+
"security-severity": "4.5"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"id": "SNYK-PYTHON-DNSPYTHON-6241713",
|
|
37
|
+
"shortDescription": {
|
|
38
|
+
"text": "Medium severity - Incorrect Behavior Order vulnerability in dnspython"
|
|
39
|
+
},
|
|
40
|
+
"fullDescription": {
|
|
41
|
+
"text": "(CVE-2023-29483) dnspython@2.0.0"
|
|
42
|
+
},
|
|
43
|
+
"help": {
|
|
44
|
+
"text": "",
|
|
45
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: dnspython\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › email-validator@1.0.4 › dnspython@2.0.0\n# Overview\n\nAffected versions of this package are vulnerable to Incorrect Behavior Order in the DNS pre-processing pipeline, which allows an off-path attacker who can spoof the source IP address of a malformed DNS response packet to cause denial of service. The UDP processing functions in `query.py` and `asyncquery.py` accept the first-arriving packet before closing the receiving socket, allowing the attacker to make the remote nameserver appear unavailable for the target resolver and clients.\n# Remediation\nUpgrade `dnspython` to version 2.6.1 or higher.\n# References\n- [GitHub Commit](https://github.com/rthalley/dnspython/commit/0ea5ad0a4583e1f519b9bcc67cfac381230d9cf2)\n- [GitHub Issue](https://github.com/rthalley/dnspython/issues/1045)\n- [Tudoor Paper](https://lixiang521.com/publication/oakland24/sp24spring-tudoor-li.pdf)\n"
|
|
46
|
+
},
|
|
47
|
+
"properties": {
|
|
48
|
+
"tags": [
|
|
49
|
+
"security",
|
|
50
|
+
"CWE-696",
|
|
51
|
+
"poetry"
|
|
52
|
+
],
|
|
53
|
+
"cvssv3_baseScore": 5.9,
|
|
54
|
+
"security-severity": "5.9"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": "SNYK-PYTHON-FASTECDSA-511943",
|
|
59
|
+
"shortDescription": {
|
|
60
|
+
"text": "Medium severity - Timing Attack vulnerability in fastecdsa"
|
|
61
|
+
},
|
|
62
|
+
"fullDescription": {
|
|
63
|
+
"text": "fastecdsa@2.1.3"
|
|
64
|
+
},
|
|
65
|
+
"help": {
|
|
66
|
+
"text": "",
|
|
67
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: fastecdsa\n* Introduced through: SimplePackage@1.0.0 and fastecdsa@2.1.3\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › fastecdsa@2.1.3\n# Overview\n[fastecdsa](https://github.com/AntonKueltz/fastecdsa) is a python package for doing fast elliptic curve cryptography, specifically digital signatures.\n\nAffected versions of this package are vulnerable to Timing Attack. Practical recovery of the long-term private key generated by the library is possible under certain conditions. Leakage of bit-length of a scalar during scalar multiplication is possible on an elliptic curve which might allow practical recovery of the long-term private key.\n# Remediation\nUpgrade `fastecdsa` to version 2.1.4 or higher.\n# References\n- [GitHub Commit](https://github.com/indutny/elliptic/commit/ec735edde187a43693197f6fa3667ceade751a3a)\n- [GitHub Commit](https://github.com/warner/python-ecdsa/commit/b516f06d0e94eca6deeb3bdb82027ad2f2f55ac6)\n- [GitHub Issue](https://github.com/AntonKueltz/fastecdsa/issues/40)\n- [GitHub PR](https://github.com/AntonKueltz/fastecdsa/pull/60)\n- [GitHub PR](https://github.com/DavidEGrayson/ruby_ecdsa/pull/14)\n- [GitHub PR](https://github.com/indutny/elliptic/pull/203)\n"
|
|
68
|
+
},
|
|
69
|
+
"properties": {
|
|
70
|
+
"tags": [
|
|
71
|
+
"security",
|
|
72
|
+
"CWE-362",
|
|
73
|
+
"poetry"
|
|
74
|
+
],
|
|
75
|
+
"cvssv3_baseScore": 5.9,
|
|
76
|
+
"security-severity": "5.9"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"id": "SNYK-PYTHON-FASTECDSA-6262045",
|
|
81
|
+
"shortDescription": {
|
|
82
|
+
"text": "High severity - Use of Uninitialized Variable vulnerability in fastecdsa"
|
|
83
|
+
},
|
|
84
|
+
"fullDescription": {
|
|
85
|
+
"text": "(CVE-2024-21502) fastecdsa@2.1.3"
|
|
86
|
+
},
|
|
87
|
+
"help": {
|
|
88
|
+
"text": "",
|
|
89
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: fastecdsa\n* Introduced through: SimplePackage@1.0.0 and fastecdsa@2.1.3\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › fastecdsa@2.1.3\n# Overview\n[fastecdsa](https://github.com/AntonKueltz/fastecdsa) is a python package for doing fast elliptic curve cryptography, specifically digital signatures.\n\nAffected versions of this package are vulnerable to Use of Uninitialized Variable on the stack, via the `curvemath_mul` function in `src/curveMath.c`, due to being used and interpreted as user-defined type. Depending on the variable's actual value it could be arbitrary `free()`, arbitrary `realloc()`, null pointer dereference and other. Since the stack can be controlled by the attacker, the vulnerability could be used to corrupt allocator structure, leading to possible heap exploitation. The attacker could cause denial of service by exploiting this vulnerability.\n# PoC\n```python\r\n#!/usr/bin/env python3\r\n\r\nimport sys\r\nprint(sys.version)\r\n\r\nfrom fastecdsa.curve import Curve\r\nfrom fastecdsa.point import Point\r\n\r\nimport time\r\ntime.sleep(2) # time to attach in gdb\r\n\r\nMyCurve = Curve(\r\n p = 0x10001,\r\n a = 0x3,\r\n b = 0x0,\r\n q = 0x10202,\r\n gx = 0x427e,\r\n gy = 0x4ccb,\r\n name = 'MyCurve',\r\n)\r\n\r\nP = Point(x = 0, y = 0, curve = MyCurve)\r\nprint(P)\r\n\r\nQ = 123 * P # trigger is here\r\nprint(Q)\r\n```\n# Remediation\nUpgrade `fastecdsa` to version 2.3.2 or higher.\n# References\n- [Github Commit](https://github.com/AntonKueltz/fastecdsa/commit/57fc5689c95d649dab7ef60cc99ac64589f01e36)\n- [GitHub Gist](https://gist.github.com/keltecc/49da037072276f21b005a8337c15db26)\n- [Vulnerable Code](https://github.com/AntonKueltz/fastecdsa/blob/v2.3.1/src/curveMath.c#L210)\n"
|
|
90
|
+
},
|
|
91
|
+
"properties": {
|
|
92
|
+
"tags": [
|
|
93
|
+
"security",
|
|
94
|
+
"CWE-457",
|
|
95
|
+
"poetry"
|
|
96
|
+
],
|
|
97
|
+
"cvssv3_baseScore": 7.5,
|
|
98
|
+
"security-severity": "7.5"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "SNYK-PYTHON-FLASK-5490129",
|
|
103
|
+
"shortDescription": {
|
|
104
|
+
"text": "High severity - Information Exposure vulnerability in flask"
|
|
105
|
+
},
|
|
106
|
+
"fullDescription": {
|
|
107
|
+
"text": "(CVE-2023-30861) flask@1.1.1"
|
|
108
|
+
},
|
|
109
|
+
"help": {
|
|
110
|
+
"text": "",
|
|
111
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: flask\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask@1.1.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › flask@1.1.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8 › flask@1.1.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-mail@0.9.1 › flask@1.1.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask@1.1.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-sqlalchemy@2.4.0 › flask@1.1.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-restful@0.3.7 › flask@1.1.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-script@2.0.6 › flask@1.1.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-wtf@0.14.3 › flask@1.1.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask-sqlalchemy@2.4.0 › flask@1.1.1\n# Overview\n\nAffected versions of this package are vulnerable to Information Exposure in the form of exposing the permanent session cookie, when all of the following conditions are met:\r\n\r\n1) The application is hosted behind a caching proxy that does not strip cookies or ignore responses with cookies.\r\n\r\n2) The application sets `session.permanent = True`.\r\n\r\n3) The application does not access or modify the session at any point during a request.\r\n\r\n4) `SESSION_REFRESH_EACH_REQUEST` is enabled (the default).\r\n\r\n5) The application does not set a `Cache-Control` header to indicate that a page is private or should not be cached.\r\n\r\nA response containing data intended for one client may be cached and sent to other clients. If the proxy also caches `Set-Cookie` headers, it may send one client's `session` cookie to other clients. Under these conditions, the `Vary: Cookie` header is not set when a session is refreshed (re-sent to update the expiration) without being accessed or modified.\n# Remediation\nUpgrade `flask` to version 2.2.5, 2.3.2 or higher.\n# References\n- [GitHub Commit](https://github.com/pallets/flask/commit/70f906c51ce49c485f1d355703e9cc3386b1cc2b)\n- [GitHub Commit](https://github.com/pallets/flask/commit/afd63b16170b7c047f5758eb910c416511e9c965)\n- [GitHub PR](https://github.com/pallets/flask/pull/5109)\n- [GitHub Release](https://github.com/pallets/flask/releases/tag/2.2.5)\n- [GitHub Release](https://github.com/pallets/flask/releases/tag/2.3.2)\n- [Session Cookie Documentation](https://flask.palletsprojects.com/en/2.3.x/api/#flask.session.permanent)\n"
|
|
112
|
+
},
|
|
113
|
+
"properties": {
|
|
114
|
+
"tags": [
|
|
115
|
+
"security",
|
|
116
|
+
"CWE-200",
|
|
117
|
+
"poetry"
|
|
118
|
+
],
|
|
119
|
+
"cvssv3_baseScore": 7.5,
|
|
120
|
+
"security-severity": "7.5"
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"id": "SNYK-PYTHON-FLASKCORS-608972",
|
|
125
|
+
"shortDescription": {
|
|
126
|
+
"text": "High severity - Directory Traversal vulnerability in flask-cors"
|
|
127
|
+
},
|
|
128
|
+
"fullDescription": {
|
|
129
|
+
"text": "(CVE-2020-25032) flask-cors@3.0.8"
|
|
130
|
+
},
|
|
131
|
+
"help": {
|
|
132
|
+
"text": "",
|
|
133
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: flask-cors\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8\n# Overview\n[Flask-Cors](https://www.pypi.org/project/Flask-Cors) is an A Flask extension adding a decorator for CORS support\n\nAffected versions of this package are vulnerable to Directory Traversal. An attacker could potentially access private resources because resource matching does not ensure that pathnames are in a canonical format.\n\n# Details\n\nA Directory Traversal attack (also known as path traversal) aims to access files and directories that are stored outside the intended folder. By manipulating files with \"dot-dot-slash (../)\" sequences and its variations, or by using absolute file paths, it may be possible to access arbitrary files and directories stored on file system, including application source code, configuration, and other critical system files.\n\nDirectory Traversal vulnerabilities can be generally divided into two types:\n\n- **Information Disclosure**: Allows the attacker to gain information about the folder structure or read the contents of sensitive files on the system.\n\n`st` is a module for serving static files on web pages, and contains a [vulnerability of this type](https://snyk.io/vuln/npm:st:20140206). In our example, we will serve files from the `public` route.\n\nIf an attacker requests the following URL from our server, it will in turn leak the sensitive private key of the root user.\n\n```\ncurl http://localhost:8080/public/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/root/.ssh/id_rsa\n```\n**Note** `%2e` is the URL encoded version of `.` (dot).\n\n- **Writing arbitrary files**: Allows the attacker to create or replace existing files. This type of vulnerability is also known as `Zip-Slip`. \n\nOne way to achieve this is by using a malicious `zip` archive that holds path traversal filenames. When each filename in the zip archive gets concatenated to the target extraction folder, without validation, the final path ends up outside of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.\n\nThe following is an example of a `zip` archive with one benign file and one malicious file. Extracting the malicious file will result in traversing out of the target folder, ending up in `/root/.ssh/` overwriting the `authorized_keys` file:\n\n```\n2018-04-15 22:04:29 ..... 19 19 good.txt\n2018-04-15 22:04:42 ..... 20 20 ../../../../../../root/.ssh/authorized_keys\n```\n\n# Remediation\nUpgrade `Flask-Cors` to version 3.0.9 or higher.\n# References\n- [GitHub PR](https://github.com/corydolphin/flask-cors/pull/272)\n"
|
|
134
|
+
},
|
|
135
|
+
"properties": {
|
|
136
|
+
"tags": [
|
|
137
|
+
"security",
|
|
138
|
+
"CWE-22",
|
|
139
|
+
"poetry"
|
|
140
|
+
],
|
|
141
|
+
"cvssv3_baseScore": 7.5,
|
|
142
|
+
"security-severity": "7.5"
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"id": "SNYK-PYTHON-FLASKCORS-6670412",
|
|
147
|
+
"shortDescription": {
|
|
148
|
+
"text": "Low severity - Log Injection vulnerability in flask-cors"
|
|
149
|
+
},
|
|
150
|
+
"fullDescription": {
|
|
151
|
+
"text": "(CVE-2024-1681) flask-cors@3.0.8"
|
|
152
|
+
},
|
|
153
|
+
"help": {
|
|
154
|
+
"text": "",
|
|
155
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: flask-cors\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8\n# Overview\n[Flask-Cors](https://www.pypi.org/project/Flask-Cors) is an A Flask extension adding a decorator for CORS support\n\nAffected versions of this package are vulnerable to Log Injection when the log level is set to debug. A user can inject or modify messages by abusing CRLF sequences in the request path of a GET request.\n# PoC\n```\r\nhttp://127.0.0.1:5000/api/test%0D%0A%0D%0ALOGINJECTION%0D%0A%0D%0A\r\n```\n# Remediation\nUpgrade `Flask-Cors` to version 4.0.1 or higher.\n# References\n- [GitHub Commit](https://github.com/corydolphin/flask-cors/commit/6172c2000dba965fedb8e9a8a916ad56f0fb2630)\n- [PoC](https://huntr.com/bounties/25a7a0ba-9fa2-4777-acb6-03e5539bb644)\n- [Vulnerable Code](https://github.com/corydolphin/flask-cors/blob/40acc8092332dfed4bb54d7a4f89a6d479466de7/flask_cors/extension.py#L194)\n"
|
|
156
|
+
},
|
|
157
|
+
"properties": {
|
|
158
|
+
"tags": [
|
|
159
|
+
"security",
|
|
160
|
+
"CWE-117",
|
|
161
|
+
"poetry"
|
|
162
|
+
],
|
|
163
|
+
"cvssv3_baseScore": 3.1,
|
|
164
|
+
"security-severity": "3.1"
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"id": "SNYK-PYTHON-FLASKCORS-9668952",
|
|
169
|
+
"shortDescription": {
|
|
170
|
+
"text": "Medium severity - Origin Validation Error vulnerability in flask-cors"
|
|
171
|
+
},
|
|
172
|
+
"fullDescription": {
|
|
173
|
+
"text": "(CVE-2024-6844) flask-cors@3.0.8"
|
|
174
|
+
},
|
|
175
|
+
"help": {
|
|
176
|
+
"text": "",
|
|
177
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: flask-cors\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8\n# Overview\n[Flask-Cors](https://www.pypi.org/project/Flask-Cors) is an A Flask extension adding a decorator for CORS support\n\nAffected versions of this package are vulnerable to Origin Validation Error due to the replacement of `+` characters with spaces in the `unquote_plus()` function, when handling the `request.path` parameter. An attacker can cause unauthorized cross-origin access or block valid requests by manipulating URL paths, leading to CORS policy bypasses.\n# Remediation\nThere is no fixed version for `Flask-Cors`.\n# References\n- [Vulnerability Report](https://huntr.com/bounties/731a6cd4-d05f-4fe6-8f5b-fe088d7b34e0)\n- [Vulnerable Code](https://github.com/corydolphin/flask-cors/blob/main/flask_cors/extension.py#L193)\n"
|
|
178
|
+
},
|
|
179
|
+
"properties": {
|
|
180
|
+
"tags": [
|
|
181
|
+
"security",
|
|
182
|
+
"CWE-346",
|
|
183
|
+
"poetry"
|
|
184
|
+
],
|
|
185
|
+
"cvssv3_baseScore": 6.9,
|
|
186
|
+
"security-severity": "6.9"
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"id": "SNYK-PYTHON-FLASKCORS-9668953",
|
|
191
|
+
"shortDescription": {
|
|
192
|
+
"text": "Medium severity - Improper Verification of Source of a Communication Channel vulnerability in flask-cors"
|
|
193
|
+
},
|
|
194
|
+
"fullDescription": {
|
|
195
|
+
"text": "(CVE-2024-6839) flask-cors@3.0.8"
|
|
196
|
+
},
|
|
197
|
+
"help": {
|
|
198
|
+
"text": "",
|
|
199
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: flask-cors\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8\n# Overview\n[Flask-Cors](https://www.pypi.org/project/Flask-Cors) is an A Flask extension adding a decorator for CORS support\n\nAffected versions of this package are vulnerable to Improper Verification of Source of a Communication Channel due to improper application of regex path matching rules. An attacker can gain unauthorized cross-origin access to sensitive data or functionality by exploiting the prioritization of longer regex patterns over more specific ones, leading to less restrictive CORS policies being applied to sensitive endpoints.\n# Remediation\nThere is no fixed version for `Flask-Cors`.\n# References\n- [Vulnerability Report](https://huntr.com/bounties/403eb1fc-86f4-4820-8eba-0f3dfae9f2b4)\n- [Vulnerable Code](https://github.com/corydolphin/flask-cors/blob/5.0.1/flask_cors/core.py#L79)\n"
|
|
200
|
+
},
|
|
201
|
+
"properties": {
|
|
202
|
+
"tags": [
|
|
203
|
+
"security",
|
|
204
|
+
"CWE-940",
|
|
205
|
+
"poetry"
|
|
206
|
+
],
|
|
207
|
+
"cvssv3_baseScore": 6.9,
|
|
208
|
+
"security-severity": "6.9"
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"id": "SNYK-PYTHON-FLASKCORS-9668954",
|
|
213
|
+
"shortDescription": {
|
|
214
|
+
"text": "Medium severity - Improper Handling of Case Sensitivity vulnerability in flask-cors"
|
|
215
|
+
},
|
|
216
|
+
"fullDescription": {
|
|
217
|
+
"text": "(CVE-2024-6866) flask-cors@3.0.8"
|
|
218
|
+
},
|
|
219
|
+
"help": {
|
|
220
|
+
"text": "",
|
|
221
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: flask-cors\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8\n# Overview\n[Flask-Cors](https://www.pypi.org/project/Flask-Cors) is an A Flask extension adding a decorator for CORS support\n\nAffected versions of this package are vulnerable to Improper Handling of Case Sensitivity in the `try_match()` function. An attacker can access restricted paths and potentially expose sensitive data by exploiting the case insensitivity in path matching.\n# Remediation\nThere is no fixed version for `Flask-Cors`.\n# References\n- [Vulnerability Report](https://huntr.com/bounties/808c11af-faee-43a8-824b-b5ab4f62b9e6)\n- [Vulnerable Code](https://github.com/corydolphin/flask-cors/blob/5.0.1/flask_cors/extension.py#L193)\n"
|
|
222
|
+
},
|
|
223
|
+
"properties": {
|
|
224
|
+
"tags": [
|
|
225
|
+
"security",
|
|
226
|
+
"CWE-178",
|
|
227
|
+
"poetry"
|
|
228
|
+
],
|
|
229
|
+
"cvssv3_baseScore": 6,
|
|
230
|
+
"security-severity": "6"
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"id": "SNYK-PYTHON-IDNA-6597975",
|
|
235
|
+
"shortDescription": {
|
|
236
|
+
"text": "Medium severity - Resource Exhaustion vulnerability in idna"
|
|
237
|
+
},
|
|
238
|
+
"fullDescription": {
|
|
239
|
+
"text": "(CVE-2024-3651) idna@2.10"
|
|
240
|
+
},
|
|
241
|
+
"help": {
|
|
242
|
+
"text": "",
|
|
243
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: idna\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › email-validator@1.0.4 › idna@2.10\n# Overview\n\nAffected versions of this package are vulnerable to Resource Exhaustion via the `idna.encode` function. An attacker can consume significant resources and potentially cause a denial-of-service by supplying specially crafted arguments to this function. \r\n\r\n**Note:**\r\nThis is triggered by arbitrarily large inputs that would not occur in normal usage but may be passed to the library assuming there is no preliminary input validation by the higher-level application.\n# Remediation\nUpgrade `idna` to version 3.7 or higher.\n# References\n- [GitHub Commit](https://github.com/kjd/idna/commit/5beb28b9dd77912c0dd656d8b0fdba3eb80222e7)\n"
|
|
244
|
+
},
|
|
245
|
+
"properties": {
|
|
246
|
+
"tags": [
|
|
247
|
+
"security",
|
|
248
|
+
"CWE-400",
|
|
249
|
+
"poetry"
|
|
250
|
+
],
|
|
251
|
+
"cvssv3_baseScore": 6.2,
|
|
252
|
+
"security-severity": "6.2"
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"id": "SNYK-PYTHON-IHATEMONEY-5880460",
|
|
257
|
+
"shortDescription": {
|
|
258
|
+
"text": "Medium severity - Cross-site Scripting (XSS) vulnerability in ihatemoney"
|
|
259
|
+
},
|
|
260
|
+
"fullDescription": {
|
|
261
|
+
"text": "ihatemoney@4.1.4"
|
|
262
|
+
},
|
|
263
|
+
"help": {
|
|
264
|
+
"text": "",
|
|
265
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: ihatemoney\n* Introduced through: SimplePackage@1.0.0 and ihatemoney@4.1.4\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4\n# Overview\n[ihatemoney](https://www.pypi.org/project/ihatemoney) is a simple shared budget manager web application.\n\nAffected versions of this package are vulnerable to Cross-site Scripting (XSS) due to improper user-input sanitization, via the `People to notify` field.\n# PoC\n```javascript\n<img src=x onerror=alert(document.domain)>\n```\n# Details\n\nA cross-site scripting attack occurs when the attacker tricks a legitimate web-based application or site to accept a request as originating from a trusted source.\n\nThis is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.\n\nInjecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.\n\nEscaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, `<` can be coded as `<`; and `>` can be coded as `>`; in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses `<` and `>` as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.\n \nThe most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware. \n\n## Types of attacks\nThere are a few methods by which XSS can be manipulated:\n\n|Type|Origin|Description|\n|--|--|--|\n|**Stored**|Server|The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link.|\n|**Reflected**|Server|The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser.| \n|**DOM-based**|Client|The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data.|\n|**Mutated**| |The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters.|\n\n## Affected environments\nThe following environments are susceptible to an XSS attack:\n\n* Web servers\n* Application servers\n* Web application environments\n\n## How to prevent\nThis section describes the top best practices designed to specifically protect your code: \n\n* Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches. \n* Convert special characters such as `?`, `&`, `/`, `<`, `>` and spaces to their respective HTML or URL encoded equivalents. \n* Give users the option to disable client-side scripts.\n* Redirect invalid requests.\n* Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.\n* Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.\n* Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.\n\n# Remediation\nUpgrade `ihatemoney` to version 6.0.0 or higher.\n# References\n- [GitHub Commit](https://github.com/spiral-project/ihatemoney/commit/667b65b9ccb5c68c2f251be12d6aa3d06cdcb0ba)\n- [GitHub PR](https://github.com/spiral-project/ihatemoney/pull/1044)\n- [GitHub Release](https://github.com/spiral-project/ihatemoney/releases/tag/6.0.0)\n"
|
|
266
|
+
},
|
|
267
|
+
"properties": {
|
|
268
|
+
"tags": [
|
|
269
|
+
"security",
|
|
270
|
+
"CWE-79",
|
|
271
|
+
"poetry"
|
|
272
|
+
],
|
|
273
|
+
"cvssv3_baseScore": 4.4,
|
|
274
|
+
"security-severity": "4.4"
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"id": "SNYK-PYTHON-IHATEMONEY-5926703",
|
|
279
|
+
"shortDescription": {
|
|
280
|
+
"text": "Medium severity - Cross-site Request Forgery (CSRF) vulnerability in ihatemoney"
|
|
281
|
+
},
|
|
282
|
+
"fullDescription": {
|
|
283
|
+
"text": "ihatemoney@4.1.4"
|
|
284
|
+
},
|
|
285
|
+
"help": {
|
|
286
|
+
"text": "",
|
|
287
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: ihatemoney\n* Introduced through: SimplePackage@1.0.0 and ihatemoney@4.1.4\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4\n# Overview\n[ihatemoney](https://www.pypi.org/project/ihatemoney) is a simple shared budget manager web application.\n\nAffected versions of this package are vulnerable to Cross-site Request Forgery (CSRF) which allows an attacker to logout any user.\n# Remediation\nUpgrade `ihatemoney` to version 6.0.0 or higher.\n# References\n- [GitHub Commit](https://github.com/spiral-project/ihatemoney/commit/31fef4f4d66489638a4805be76a995515de0c557)\n- [GitHub PR](https://github.com/spiral-project/ihatemoney/pull/1040)\n"
|
|
288
|
+
},
|
|
289
|
+
"properties": {
|
|
290
|
+
"tags": [
|
|
291
|
+
"security",
|
|
292
|
+
"CWE-352",
|
|
293
|
+
"poetry"
|
|
294
|
+
],
|
|
295
|
+
"cvssv3_baseScore": 4.3,
|
|
296
|
+
"security-severity": "4.3"
|
|
297
|
+
}
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"id": "SNYK-PYTHON-IHATEMONEY-595715",
|
|
301
|
+
"shortDescription": {
|
|
302
|
+
"text": "Medium severity - Authorization Bypass vulnerability in ihatemoney"
|
|
303
|
+
},
|
|
304
|
+
"fullDescription": {
|
|
305
|
+
"text": "(CVE-2020-15120) ihatemoney@4.1.4"
|
|
306
|
+
},
|
|
307
|
+
"help": {
|
|
308
|
+
"text": "",
|
|
309
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: ihatemoney\n* Introduced through: SimplePackage@1.0.0 and ihatemoney@4.1.4\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4\n# Overview\n[ihatemoney](https://www.pypi.org/project/ihatemoney) is a simple shared budget manager web application.\n\nAffected versions of this package are vulnerable to Authorization Bypass. An authenticated member of one project can modify and delete members of another project, without knowledge of this other project's private code. This can be further exploited to access all bills of another project without knowledge of this other project's private code.\n# Remediation\nUpgrade `ihatemoney` to version 4.1.5 or higher.\n# References\n- [GitHub PR](https://github.com/spiral-project/ihatemoney/pull/663)\n"
|
|
310
|
+
},
|
|
311
|
+
"properties": {
|
|
312
|
+
"tags": [
|
|
313
|
+
"security",
|
|
314
|
+
"CWE-285",
|
|
315
|
+
"poetry"
|
|
316
|
+
],
|
|
317
|
+
"cvssv3_baseScore": 4.9,
|
|
318
|
+
"security-severity": "4.9"
|
|
319
|
+
}
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"id": "SNYK-PYTHON-JINJA2-1012994",
|
|
323
|
+
"shortDescription": {
|
|
324
|
+
"text": "Medium severity - Regular Expression Denial of Service (ReDoS) vulnerability in jinja2"
|
|
325
|
+
},
|
|
326
|
+
"fullDescription": {
|
|
327
|
+
"text": "(CVE-2020-28493) jinja2@2.10.1"
|
|
328
|
+
},
|
|
329
|
+
"help": {
|
|
330
|
+
"text": "",
|
|
331
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: jinja2\n* Introduced through: SimplePackage@1.0.0 and jinja2@2.10.1\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-mail@0.9.1 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-restful@0.3.7 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-script@2.0.6 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-wtf@0.14.3 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › jinja2@2.10.1\n# Overview\n[Jinja2](https://pypi.org/project/Jinja2/) is a template engine written in pure Python. It provides a Django inspired non-XML syntax but supports inline expressions and an optional sandboxed environment.\n\nAffected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS). The ReDoS vulnerability is mainly due to the `_punctuation_re regex` operator and its use of multiple wildcards. The last wildcard is the most exploitable as it searches for trailing punctuation.\r\n\r\nThis issue can be mitigated by using Markdown to format user content instead of the urlize filter, or by implementing request timeouts or limiting process memory.\r\n\r\n## PoC by Yeting Li\r\n```\r\nfrom jinja2.utils import urlize\r\nfrom time import perf_counter\r\n\r\nfor i in range(3):\r\n text = \"abc@\" + \".\" * (i+1)*5000 + \"!\"\r\n LEN = len(text)\r\n BEGIN = perf_counter()\r\n urlize(text)\r\n DURATION = perf_counter() - BEGIN\r\n print(f\"{LEN}: took {DURATION} seconds!\")\r\n```\n\n# Details\n\nDenial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.\n\nThe Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.\n\nLet’s take the following regular expression as an example:\n```js\nregex = /A(B|C+)+D/\n```\n\nThis regular expression accomplishes the following:\n- `A` The string must start with the letter 'A'\n- `(B|C+)+` The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the `+` matches one or more times). The `+` at the end of this section states that we can look for one or more matches of this section.\n- `D` Finally, we ensure this section of the string ends with a 'D'\n\nThe expression would match inputs such as `ABBD`, `ABCCCCD`, `ABCBCCCD` and `ACCCCCD`\n\nIt most cases, it doesn't take very long for a regex engine to find a match:\n\n```bash\n$ time node -e '/A(B|C+)+D/.test(\"ACCCCCCCCCCCCCCCCCCCCCCCCCCCCD\")'\n0.04s user 0.01s system 95% cpu 0.052 total\n\n$ time node -e '/A(B|C+)+D/.test(\"ACCCCCCCCCCCCCCCCCCCCCCCCCCCCX\")'\n1.79s user 0.02s system 99% cpu 1.812 total\n```\n\nThe entire process of testing it against a 30 characters long string takes around ~52ms. But when given an invalid string, it takes nearly two seconds to complete the test, over ten times as long as it took to test a valid string. The dramatic difference is due to the way regular expressions get evaluated.\n\nMost Regex engines will work very similarly (with minor differences). The engine will match the first possible way to accept the current character and proceed to the next one. If it then fails to match the next one, it will backtrack and see if there was another way to digest the previous character. If it goes too far down the rabbit hole only to find out the string doesn’t match in the end, and if many characters have multiple valid regex paths, the number of backtracking steps can become very large, resulting in what is known as _catastrophic backtracking_.\n\nLet's look at how our expression runs into this problem, using a shorter string: \"ACCCX\". While it seems fairly straightforward, there are still four different ways that the engine could match those three C's:\n1. CCC\n2. CC+C\n3. C+CC\n4. C+C+C.\n\nThe engine has to try each of those combinations to see if any of them potentially match against the expression. When you combine that with the other steps the engine must take, we can use [RegEx 101 debugger](https://regex101.com/debugger) to see the engine has to take a total of 38 steps before it can determine the string doesn't match.\n\nFrom there, the number of steps the engine must use to validate a string just continues to grow.\n\n| String | Number of C's | Number of steps |\n| -------|-------------:| -----:|\n| ACCCX | 3 | 38\n| ACCCCX | 4 | 71\n| ACCCCCX | 5 | 136\n| ACCCCCCCCCCCCCCX | 14 | 65,553\n\n\nBy the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.\n\n# Remediation\nUpgrade `Jinja2` to version 2.11.3 or higher.\n# References\n- [GitHub Additional Information](https://github.com/pallets/jinja/blob/ab81fd9c277900c85da0c322a2ff9d68a235b2e6/src/jinja2/utils.py#L20)\n- [GitHub PR](https://github.com/pallets/jinja/pull/1343)\n"
|
|
332
|
+
},
|
|
333
|
+
"properties": {
|
|
334
|
+
"tags": [
|
|
335
|
+
"security",
|
|
336
|
+
"CWE-400",
|
|
337
|
+
"poetry"
|
|
338
|
+
],
|
|
339
|
+
"cvssv3_baseScore": 5.3,
|
|
340
|
+
"security-severity": "5.3"
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
"id": "SNYK-PYTHON-JINJA2-6150717",
|
|
345
|
+
"shortDescription": {
|
|
346
|
+
"text": "Medium severity - Cross-site Scripting (XSS) vulnerability in jinja2"
|
|
347
|
+
},
|
|
348
|
+
"fullDescription": {
|
|
349
|
+
"text": "(CVE-2024-22195) jinja2@2.10.1"
|
|
350
|
+
},
|
|
351
|
+
"help": {
|
|
352
|
+
"text": "",
|
|
353
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: jinja2\n* Introduced through: SimplePackage@1.0.0 and jinja2@2.10.1\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-mail@0.9.1 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-restful@0.3.7 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-script@2.0.6 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-wtf@0.14.3 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › jinja2@2.10.1\n# Overview\n[Jinja2](https://pypi.org/project/Jinja2/) is a template engine written in pure Python. It provides a Django inspired non-XML syntax but supports inline expressions and an optional sandboxed environment.\n\nAffected versions of this package are vulnerable to Cross-site Scripting (XSS) via the `xmlattr` filter, when using keys containing spaces in an application accepts keys as user input. An attacker can inject arbitrary HTML attributes into the rendered HTML template, bypassing the auto-escaping mechanism, which may lead to the execution of untrusted scripts in the context of the user's browser session.\r\n\r\n**Note**\r\nAccepting keys as user input is not common or a particularly intended use case of the `xmlattr` filter, and an application doing so should already be verifying what keys are provided regardless of this fix.\n# Details\n\nA cross-site scripting attack occurs when the attacker tricks a legitimate web-based application or site to accept a request as originating from a trusted source.\n\nThis is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.\n\nInjecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.\n\nEscaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, `<` can be coded as `<`; and `>` can be coded as `>`; in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses `<` and `>` as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.\n \nThe most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware. \n\n## Types of attacks\nThere are a few methods by which XSS can be manipulated:\n\n|Type|Origin|Description|\n|--|--|--|\n|**Stored**|Server|The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link.|\n|**Reflected**|Server|The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser.| \n|**DOM-based**|Client|The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data.|\n|**Mutated**| |The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters.|\n\n## Affected environments\nThe following environments are susceptible to an XSS attack:\n\n* Web servers\n* Application servers\n* Web application environments\n\n## How to prevent\nThis section describes the top best practices designed to specifically protect your code: \n\n* Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches. \n* Convert special characters such as `?`, `&`, `/`, `<`, `>` and spaces to their respective HTML or URL encoded equivalents. \n* Give users the option to disable client-side scripts.\n* Redirect invalid requests.\n* Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.\n* Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.\n* Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.\n\n# Remediation\nUpgrade `Jinja2` to version 3.1.3 or higher.\n# References\n- [GitHub Commit](https://github.com/pallets/jinja/commit/7dd3680e6eea0d77fde024763657aa4d884ddb23)\n- [GitHub Release](https://github.com/pallets/jinja/releases/tag/3.1.3)\n- [Snyk Blog](https://snyk.io/blog/jinja2-xss-vulnerability/)\n"
|
|
354
|
+
},
|
|
355
|
+
"properties": {
|
|
356
|
+
"tags": [
|
|
357
|
+
"security",
|
|
358
|
+
"CWE-79",
|
|
359
|
+
"poetry"
|
|
360
|
+
],
|
|
361
|
+
"cvssv3_baseScore": 5.4,
|
|
362
|
+
"security-severity": "5.4"
|
|
363
|
+
}
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"id": "SNYK-PYTHON-JINJA2-6809379",
|
|
367
|
+
"shortDescription": {
|
|
368
|
+
"text": "Medium severity - Cross-site Scripting (XSS) vulnerability in jinja2"
|
|
369
|
+
},
|
|
370
|
+
"fullDescription": {
|
|
371
|
+
"text": "(CVE-2024-34064) jinja2@2.10.1"
|
|
372
|
+
},
|
|
373
|
+
"help": {
|
|
374
|
+
"text": "",
|
|
375
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: jinja2\n* Introduced through: SimplePackage@1.0.0 and jinja2@2.10.1\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-mail@0.9.1 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-restful@0.3.7 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-script@2.0.6 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-wtf@0.14.3 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › jinja2@2.10.1\n# Overview\n[Jinja2](https://pypi.org/project/Jinja2/) is a template engine written in pure Python. It provides a Django inspired non-XML syntax but supports inline expressions and an optional sandboxed environment.\n\nAffected versions of this package are vulnerable to Cross-site Scripting (XSS) through the `xmlattr` filter. An attacker can manipulate the output of web pages by injecting additional attributes into elements, potentially leading to unauthorized actions or information disclosure.\r\n\r\n**Note:**\r\nThis vulnerability derives from an improper fix of [CVE-2024-22195](https://security.snyk.io/vuln/SNYK-PYTHON-JINJA2-6150717), which only addressed spaces but not other characters.\n# Details\n\nA cross-site scripting attack occurs when the attacker tricks a legitimate web-based application or site to accept a request as originating from a trusted source.\n\nThis is done by escaping the context of the web application; the web application then delivers that data to its users along with other trusted dynamic content, without validating it. The browser unknowingly executes malicious script on the client side (through client-side languages; usually JavaScript or HTML) in order to perform actions that are otherwise typically blocked by the browser’s Same Origin Policy.\n\nInjecting malicious code is the most prevalent manner by which XSS is exploited; for this reason, escaping characters in order to prevent this manipulation is the top method for securing code against this vulnerability.\n\nEscaping means that the application is coded to mark key characters, and particularly key characters included in user input, to prevent those characters from being interpreted in a dangerous context. For example, in HTML, `<` can be coded as `<`; and `>` can be coded as `>`; in order to be interpreted and displayed as themselves in text, while within the code itself, they are used for HTML tags. If malicious content is injected into an application that escapes special characters and that malicious content uses `<` and `>` as HTML tags, those characters are nonetheless not interpreted as HTML tags by the browser if they’ve been correctly escaped in the application code and in this way the attempted attack is diverted.\n \nThe most prominent use of XSS is to steal cookies (source: OWASP HttpOnly) and hijack user sessions, but XSS exploits have been used to expose sensitive information, enable access to privileged services and functionality and deliver malware. \n\n## Types of attacks\nThere are a few methods by which XSS can be manipulated:\n\n|Type|Origin|Description|\n|--|--|--|\n|**Stored**|Server|The malicious code is inserted in the application (usually as a link) by the attacker. The code is activated every time a user clicks the link.|\n|**Reflected**|Server|The attacker delivers a malicious link externally from the vulnerable web site application to a user. When clicked, malicious code is sent to the vulnerable web site, which reflects the attack back to the user’s browser.| \n|**DOM-based**|Client|The attacker forces the user’s browser to render a malicious page. The data in the page itself delivers the cross-site scripting data.|\n|**Mutated**| |The attacker injects code that appears safe, but is then rewritten and modified by the browser, while parsing the markup. An example is rebalancing unclosed quotation marks or even adding quotation marks to unquoted parameters.|\n\n## Affected environments\nThe following environments are susceptible to an XSS attack:\n\n* Web servers\n* Application servers\n* Web application environments\n\n## How to prevent\nThis section describes the top best practices designed to specifically protect your code: \n\n* Sanitize data input in an HTTP request before reflecting it back, ensuring all data is validated, filtered or escaped before echoing anything back to the user, such as the values of query parameters during searches. \n* Convert special characters such as `?`, `&`, `/`, `<`, `>` and spaces to their respective HTML or URL encoded equivalents. \n* Give users the option to disable client-side scripts.\n* Redirect invalid requests.\n* Detect simultaneous logins, including those from two separate IP addresses, and invalidate those sessions.\n* Use and enforce a Content Security Policy (source: Wikipedia) to disable any features that might be manipulated for an XSS attack.\n* Read the documentation for any of the libraries referenced in your code to understand which elements allow for embedded HTML.\n\n# Remediation\nUpgrade `Jinja2` to version 3.1.4 or higher.\n# References\n- [GitHub Commit](https://github.com/pallets/jinja/commit/0668239dc6b44ef38e7a6c9f91f312fd4ca581cb)\n"
|
|
376
|
+
},
|
|
377
|
+
"properties": {
|
|
378
|
+
"tags": [
|
|
379
|
+
"security",
|
|
380
|
+
"CWE-79",
|
|
381
|
+
"poetry"
|
|
382
|
+
],
|
|
383
|
+
"cvssv3_baseScore": 5.4,
|
|
384
|
+
"security-severity": "5.4"
|
|
385
|
+
}
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"id": "SNYK-PYTHON-JINJA2-8548181",
|
|
389
|
+
"shortDescription": {
|
|
390
|
+
"text": "Medium severity - Template Injection vulnerability in jinja2"
|
|
391
|
+
},
|
|
392
|
+
"fullDescription": {
|
|
393
|
+
"text": "(CVE-2024-56326) jinja2@2.10.1"
|
|
394
|
+
},
|
|
395
|
+
"help": {
|
|
396
|
+
"text": "",
|
|
397
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: jinja2\n* Introduced through: SimplePackage@1.0.0 and jinja2@2.10.1\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-mail@0.9.1 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-restful@0.3.7 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-script@2.0.6 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-wtf@0.14.3 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › jinja2@2.10.1\n# Overview\n\nAffected versions of this package are vulnerable to Template Injection when an attacker controls the content of a template. This is due to an oversight in the sandboxed environment's method detection when using a stored reference to a malicious string's `format` method, which can then be executed through a filter.\r\n\r\n**Note:** This is only exploitable through custom filters in an application.\n# Remediation\nUpgrade `jinja2` to version 3.1.5 or higher.\n# References\n- [GitHub Commit](https://github.com/pallets/jinja/commit/48b0687e05a5466a91cd5812d604fa37ad0943b4)\n- [GitHub Release](https://github.com/pallets/jinja/releases/tag/3.1.5)\n- [Jinja Chnanges](https://jinja.palletsprojects.com/en/stable/changes/#version-3-1-5)\n"
|
|
398
|
+
},
|
|
399
|
+
"properties": {
|
|
400
|
+
"tags": [
|
|
401
|
+
"security",
|
|
402
|
+
"CWE-1336",
|
|
403
|
+
"poetry"
|
|
404
|
+
],
|
|
405
|
+
"cvssv3_baseScore": 5.4,
|
|
406
|
+
"security-severity": "5.4"
|
|
407
|
+
}
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"id": "SNYK-PYTHON-JINJA2-8548987",
|
|
411
|
+
"shortDescription": {
|
|
412
|
+
"text": "Medium severity - Improper Neutralization vulnerability in jinja2"
|
|
413
|
+
},
|
|
414
|
+
"fullDescription": {
|
|
415
|
+
"text": "(CVE-2024-56201) jinja2@2.10.1"
|
|
416
|
+
},
|
|
417
|
+
"help": {
|
|
418
|
+
"text": "",
|
|
419
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: jinja2\n* Introduced through: SimplePackage@1.0.0 and jinja2@2.10.1\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-mail@0.9.1 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-restful@0.3.7 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-script@2.0.6 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-wtf@0.14.3 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › jinja2@2.10.1\n# Overview\n\nAffected versions of this package are vulnerable to Improper Neutralization when importing a macro in a template whose filename is also a template. This will result in a `SyntaxError: f-string: invalid syntax` error message because the filename is not properly escaped, indicating that it is being treated as a format string.\r\n\r\n**Note:** This is only exploitable when the attacker controls both the content and filename of a template and the application executes untrusted templates.\n# Remediation\nUpgrade `jinja2` to version 3.1.5 or higher.\n# References\n- [GitHub Commit](https://github.com/pallets/jinja/commit/767b23617628419ae3709ccfb02f9602ae9fe51f)\n- [GitHub Issue](https://github.com/pallets/jinja/issues/1792)\n- [GitHub PR](https://github.com/pallets/jinja/pull/1852)\n- [GitHub Release](https://github.com/pallets/jinja/releases/tag/3.1.5)\n"
|
|
420
|
+
},
|
|
421
|
+
"properties": {
|
|
422
|
+
"tags": [
|
|
423
|
+
"security",
|
|
424
|
+
"CWE-150",
|
|
425
|
+
"poetry"
|
|
426
|
+
],
|
|
427
|
+
"cvssv3_baseScore": 5.4,
|
|
428
|
+
"security-severity": "5.4"
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"id": "SNYK-PYTHON-JINJA2-9292516",
|
|
433
|
+
"shortDescription": {
|
|
434
|
+
"text": "Medium severity - Template Injection vulnerability in jinja2"
|
|
435
|
+
},
|
|
436
|
+
"fullDescription": {
|
|
437
|
+
"text": "(CVE-2025-27516) jinja2@2.10.1"
|
|
438
|
+
},
|
|
439
|
+
"help": {
|
|
440
|
+
"text": "",
|
|
441
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: jinja2\n* Introduced through: SimplePackage@1.0.0 and jinja2@2.10.1\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-mail@0.9.1 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-restful@0.3.7 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-script@2.0.6 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-wtf@0.14.3 › flask@1.1.1 › jinja2@2.10.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › jinja2@2.10.1\n# Overview\n[Jinja2](https://pypi.org/project/Jinja2/) is a template engine written in pure Python. It provides a Django inspired non-XML syntax but supports inline expressions and an optional sandboxed environment.\n\nAffected versions of this package are vulnerable to Template Injection through the `|attr` filter. An attacker that controls the content of a template can escape the sandbox and execute arbitrary Python code by using the `|attr` filter to get a reference to a string's plain format method, bypassing the environment's attribute lookup.\r\n\r\n**Note:**\r\n\r\nThis is only exploitable if the application executes untrusted templates.\n# Remediation\nUpgrade `Jinja2` to version 3.1.6 or higher.\n# References\n- [GitHub Commit](https://github.com/pallets/jinja/commit/90457bbf33b8662926ae65cdde4c4c32e756e403)\n"
|
|
442
|
+
},
|
|
443
|
+
"properties": {
|
|
444
|
+
"tags": [
|
|
445
|
+
"security",
|
|
446
|
+
"CWE-1336",
|
|
447
|
+
"poetry"
|
|
448
|
+
],
|
|
449
|
+
"cvssv3_baseScore": 5.4,
|
|
450
|
+
"security-severity": "5.4"
|
|
451
|
+
}
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
"id": "SNYK-PYTHON-MAKO-3017600",
|
|
455
|
+
"shortDescription": {
|
|
456
|
+
"text": "Medium severity - Regular Expression Denial of Service (ReDoS) vulnerability in mako"
|
|
457
|
+
},
|
|
458
|
+
"fullDescription": {
|
|
459
|
+
"text": "(CVE-2022-40023) mako@1.1.3"
|
|
460
|
+
},
|
|
461
|
+
"help": {
|
|
462
|
+
"text": "",
|
|
463
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: mako\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › alembic@1.4.3 › mako@1.1.3\n# Overview\n\nAffected versions of this package are vulnerable to Regular Expression Denial of Service (ReDoS) in the `lexer` function, when a tag has a large number of quotes within its quoted sections.\r\n\r\n# PoC:\r\n\r\n```python\r\nfrom mako.lexer import Lexer\r\ntemplate = \"<%0\" + '\"' * 3000\r\nLexer(template).parse\r\n```\n\n# Details\n\nDenial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its original and legitimate users. There are many types of DoS attacks, ranging from trying to clog the network pipes to the system by generating a large volume of traffic from many machines (a Distributed Denial of Service - DDoS - attack) to sending crafted requests that cause a system to crash or take a disproportional amount of time to process.\n\nThe Regular expression Denial of Service (ReDoS) is a type of Denial of Service attack. Regular expressions are incredibly powerful, but they aren't very intuitive and can ultimately end up making it easy for attackers to take your site down.\n\nLet’s take the following regular expression as an example:\n```js\nregex = /A(B|C+)+D/\n```\n\nThis regular expression accomplishes the following:\n- `A` The string must start with the letter 'A'\n- `(B|C+)+` The string must then follow the letter A with either the letter 'B' or some number of occurrences of the letter 'C' (the `+` matches one or more times). The `+` at the end of this section states that we can look for one or more matches of this section.\n- `D` Finally, we ensure this section of the string ends with a 'D'\n\nThe expression would match inputs such as `ABBD`, `ABCCCCD`, `ABCBCCCD` and `ACCCCCD`\n\nIt most cases, it doesn't take very long for a regex engine to find a match:\n\n```bash\n$ time node -e '/A(B|C+)+D/.test(\"ACCCCCCCCCCCCCCCCCCCCCCCCCCCCD\")'\n0.04s user 0.01s system 95% cpu 0.052 total\n\n$ time node -e '/A(B|C+)+D/.test(\"ACCCCCCCCCCCCCCCCCCCCCCCCCCCCX\")'\n1.79s user 0.02s system 99% cpu 1.812 total\n```\n\nThe entire process of testing it against a 30 characters long string takes around ~52ms. But when given an invalid string, it takes nearly two seconds to complete the test, over ten times as long as it took to test a valid string. The dramatic difference is due to the way regular expressions get evaluated.\n\nMost Regex engines will work very similarly (with minor differences). The engine will match the first possible way to accept the current character and proceed to the next one. If it then fails to match the next one, it will backtrack and see if there was another way to digest the previous character. If it goes too far down the rabbit hole only to find out the string doesn’t match in the end, and if many characters have multiple valid regex paths, the number of backtracking steps can become very large, resulting in what is known as _catastrophic backtracking_.\n\nLet's look at how our expression runs into this problem, using a shorter string: \"ACCCX\". While it seems fairly straightforward, there are still four different ways that the engine could match those three C's:\n1. CCC\n2. CC+C\n3. C+CC\n4. C+C+C.\n\nThe engine has to try each of those combinations to see if any of them potentially match against the expression. When you combine that with the other steps the engine must take, we can use [RegEx 101 debugger](https://regex101.com/debugger) to see the engine has to take a total of 38 steps before it can determine the string doesn't match.\n\nFrom there, the number of steps the engine must use to validate a string just continues to grow.\n\n| String | Number of C's | Number of steps |\n| -------|-------------:| -----:|\n| ACCCX | 3 | 38\n| ACCCCX | 4 | 71\n| ACCCCCX | 5 | 136\n| ACCCCCCCCCCCCCCX | 14 | 65,553\n\n\nBy the time the string includes 14 C's, the engine has to take over 65,000 steps just to see if the string is valid. These extreme situations can cause them to work very slowly (exponentially related to input size, as shown above), allowing an attacker to exploit this and can cause the service to excessively consume CPU, resulting in a Denial of Service.\n\n# Remediation\nUpgrade `Mako` to version 1.2.2 or higher.\n# References\n- [GitHub Commit](https://github.com/sqlalchemy/mako/commit/925760291d6efec64fda6e9dd1fd9cfbd5be068c)\n- [GitHub Issue](https://github.com/sqlalchemy/mako/issues/366)\n"
|
|
464
|
+
},
|
|
465
|
+
"properties": {
|
|
466
|
+
"tags": [
|
|
467
|
+
"security",
|
|
468
|
+
"CWE-1333",
|
|
469
|
+
"poetry"
|
|
470
|
+
],
|
|
471
|
+
"cvssv3_baseScore": 5.3,
|
|
472
|
+
"security-severity": "5.3"
|
|
473
|
+
}
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
"id": "SNYK-PYTHON-WERKZEUG-3319935",
|
|
477
|
+
"shortDescription": {
|
|
478
|
+
"text": "Low severity - Access Restriction Bypass vulnerability in werkzeug"
|
|
479
|
+
},
|
|
480
|
+
"fullDescription": {
|
|
481
|
+
"text": "(CVE-2023-23934) werkzeug@0.16.1"
|
|
482
|
+
},
|
|
483
|
+
"help": {
|
|
484
|
+
"text": "",
|
|
485
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: werkzeug\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-mail@0.9.1 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-restful@0.3.7 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-script@2.0.6 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-wtf@0.14.3 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › werkzeug@0.16.1\n# Overview\n\nAffected versions of this package are vulnerable to Access Restriction Bypass that allows a malicious application on an adjacent subdomain to present \"nameless\" cookies that look like `=value` instead of `key=value` and have them accepted by the affected browser. For example, a cookie like `=__Host-test=bad` would be parsed as `__Host-test=bad` and the key treated as valid while the value is ignored.\n# Remediation\nUpgrade `werkzeug` to version 2.2.3 or higher.\n# References\n- [GitHub Commit](https://github.com/pallets/werkzeug/commit/cf275f42acad1b5950c50ffe8ef58fe62cdce028)\n- [GitHub Release](https://github.com/pallets/werkzeug/releases/tag/2.2.3)\n"
|
|
486
|
+
},
|
|
487
|
+
"properties": {
|
|
488
|
+
"tags": [
|
|
489
|
+
"security",
|
|
490
|
+
"CWE-284",
|
|
491
|
+
"poetry"
|
|
492
|
+
],
|
|
493
|
+
"cvssv3_baseScore": 2.6,
|
|
494
|
+
"security-severity": "2.6"
|
|
495
|
+
}
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
"id": "SNYK-PYTHON-WERKZEUG-3319936",
|
|
499
|
+
"shortDescription": {
|
|
500
|
+
"text": "High severity - Denial of Service (DoS) vulnerability in werkzeug"
|
|
501
|
+
},
|
|
502
|
+
"fullDescription": {
|
|
503
|
+
"text": "(CVE-2023-25577) werkzeug@0.16.1"
|
|
504
|
+
},
|
|
505
|
+
"help": {
|
|
506
|
+
"text": "",
|
|
507
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: werkzeug\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-mail@0.9.1 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-restful@0.3.7 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-script@2.0.6 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-wtf@0.14.3 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › werkzeug@0.16.1\n# Overview\n\nAffected versions of this package are vulnerable to Denial of Service (DoS) when parsing multipart form data. An attacker can trigger the opening of multipart files containing a large number of file parts, which are processed using `request.data`, `request.form`, `request.files`, or `request.get_data(parse_form_data=False)`, consuming CPU, memory, or file handles resources. The amount of CPU time required can block worker processes from handling other requests. The amount of RAM required can trigger an out-of-memory and crash the process.\n\n# Details\n\nDenial of Service (DoS) describes a family of attacks, all aimed at making a system inaccessible to its intended and legitimate users.\n\nUnlike other vulnerabilities, DoS attacks usually do not aim at breaching security. Rather, they are focused on making websites and services unavailable to genuine users resulting in downtime.\n\nOne popular Denial of Service vulnerability is DDoS (a Distributed Denial of Service), an attack that attempts to clog network pipes to the system by generating a large volume of traffic from many machines.\n\nWhen it comes to open source libraries, DoS vulnerabilities allow attackers to trigger such a crash or crippling of the service by using a flaw either in the application code or from the use of open source libraries.\n\nTwo common types of DoS vulnerabilities:\n\n* High CPU/Memory Consumption- An attacker sending crafted requests that could cause the system to take a disproportionate amount of time to process. For example, [commons-fileupload:commons-fileupload](https://security.snyk.io/vuln/SNYK-JAVA-COMMONSFILEUPLOAD-30082).\n\n* Crash - An attacker sending crafted requests that could cause the system to crash. For Example, [npm `ws` package](https://snyk.io/vuln/npm:ws:20171108)\n\n# Remediation\nUpgrade `werkzeug` to version 2.2.3 or higher.\n# References\n- [GitHub Commit](https://github.com/pallets/werkzeug/commit/517cac5a804e8c4dc4ed038bb20dacd038e7a9f1)\n- [GitHub Release](https://github.com/pallets/werkzeug/releases/tag/2.2.3)\n"
|
|
508
|
+
},
|
|
509
|
+
"properties": {
|
|
510
|
+
"tags": [
|
|
511
|
+
"security",
|
|
512
|
+
"CWE-770",
|
|
513
|
+
"poetry"
|
|
514
|
+
],
|
|
515
|
+
"cvssv3_baseScore": 7.5,
|
|
516
|
+
"security-severity": "7.5"
|
|
517
|
+
}
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
"id": "SNYK-PYTHON-WERKZEUG-6035177",
|
|
521
|
+
"shortDescription": {
|
|
522
|
+
"text": "Medium severity - Inefficient Algorithmic Complexity vulnerability in werkzeug"
|
|
523
|
+
},
|
|
524
|
+
"fullDescription": {
|
|
525
|
+
"text": "(CVE-2023-46136) werkzeug@0.16.1"
|
|
526
|
+
},
|
|
527
|
+
"help": {
|
|
528
|
+
"text": "",
|
|
529
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: werkzeug\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-mail@0.9.1 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-restful@0.3.7 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-script@2.0.6 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-wtf@0.14.3 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › werkzeug@0.16.1\n# Overview\n\nAffected versions of this package are vulnerable to Inefficient Algorithmic Complexity in multipart data parsing. An attacker can cause a denial of service and block worker processes from handling legitimate requests by sending crafted multipart data to an endpoint that will parse it, eventually exhausting or killing all available workers. \r\n\r\nExploiting this vulnerability is possible if the uploaded file starts with `CR` or `LF` and is followed by megabytes of data without these characters.\n# Remediation\nUpgrade `werkzeug` to version 2.3.8, 3.0.1 or higher.\n# References\n- [GitHub Commit](https://github.com/pallets/werkzeug/commit/f2300208d5e2a5076cbbb4c2aad71096fd040ef9)\n- [GitHub Commit](https://github.com/pallets/werkzeug/commit/f3c803b3ade485a45f12b6d6617595350c0f03e2)\n"
|
|
530
|
+
},
|
|
531
|
+
"properties": {
|
|
532
|
+
"tags": [
|
|
533
|
+
"security",
|
|
534
|
+
"CWE-407",
|
|
535
|
+
"poetry"
|
|
536
|
+
],
|
|
537
|
+
"cvssv3_baseScore": 6.5,
|
|
538
|
+
"security-severity": "6.5"
|
|
539
|
+
}
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
"id": "SNYK-PYTHON-WERKZEUG-6808933",
|
|
543
|
+
"shortDescription": {
|
|
544
|
+
"text": "High severity - Remote Code Execution (RCE) vulnerability in werkzeug"
|
|
545
|
+
},
|
|
546
|
+
"fullDescription": {
|
|
547
|
+
"text": "(CVE-2024-34069) werkzeug@0.16.1"
|
|
548
|
+
},
|
|
549
|
+
"help": {
|
|
550
|
+
"text": "",
|
|
551
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: werkzeug\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-mail@0.9.1 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-restful@0.3.7 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-script@2.0.6 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-wtf@0.14.3 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › werkzeug@0.16.1\n# Overview\n\nAffected versions of this package are vulnerable to Remote Code Execution (RCE) due to insufficient hostname checks and the use of relative paths to resolve requests. When the debugger is enabled, an attacker can convince a user to enter their own PIN to interact with a domain and subdomain they control, and thereby cause malicious code to be executed.\r\n\r\nThe demonstrated attack vector requires a number of conditions that render this attack very difficult to achieve, especially if the victim application is running in the recommended configuration of not having the debugger enabled in production.\n# Remediation\nUpgrade `werkzeug` to version 3.0.3 or higher.\n# References\n- [GitHub Commit](https://github.com/pallets/werkzeug/commit/71b69dfb7df3d912e66bab87fbb1f21f83504967)\n- [GitHub Release](https://github.com/pallets/werkzeug/releases/tag/3.0.3)\n"
|
|
552
|
+
},
|
|
553
|
+
"properties": {
|
|
554
|
+
"tags": [
|
|
555
|
+
"security",
|
|
556
|
+
"CWE-94",
|
|
557
|
+
"poetry"
|
|
558
|
+
],
|
|
559
|
+
"cvssv3_baseScore": 7.5,
|
|
560
|
+
"security-severity": "7.5"
|
|
561
|
+
}
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
"id": "SNYK-PYTHON-WERKZEUG-8309091",
|
|
565
|
+
"shortDescription": {
|
|
566
|
+
"text": "Medium severity - Directory Traversal vulnerability in werkzeug"
|
|
567
|
+
},
|
|
568
|
+
"fullDescription": {
|
|
569
|
+
"text": "(CVE-2024-49766) werkzeug@0.16.1"
|
|
570
|
+
},
|
|
571
|
+
"help": {
|
|
572
|
+
"text": "",
|
|
573
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: werkzeug\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-mail@0.9.1 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-restful@0.3.7 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-script@2.0.6 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-wtf@0.14.3 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › werkzeug@0.16.1\n# Overview\n[Werkzeug](https://werkzeug.palletsprojects.com/) is a WSGI web application library.\n\nAffected versions of this package are vulnerable to Directory Traversal due to a bypass for `os.path.isabs()`, which allows the improper handling of UNC paths beginning with `/`, in the `safe_join()` function. This allows an attacker to read some files on the affected server, if they are stored in an affected path.\n\n**Note:** This is only exploitable on Windows systems using Python versions prior to 3.11.\n\n# Details\n\nA Directory Traversal attack (also known as path traversal) aims to access files and directories that are stored outside the intended folder. By manipulating files with \"dot-dot-slash (../)\" sequences and its variations, or by using absolute file paths, it may be possible to access arbitrary files and directories stored on file system, including application source code, configuration, and other critical system files.\n\nDirectory Traversal vulnerabilities can be generally divided into two types:\n\n- **Information Disclosure**: Allows the attacker to gain information about the folder structure or read the contents of sensitive files on the system.\n\n`st` is a module for serving static files on web pages, and contains a [vulnerability of this type](https://snyk.io/vuln/npm:st:20140206). In our example, we will serve files from the `public` route.\n\nIf an attacker requests the following URL from our server, it will in turn leak the sensitive private key of the root user.\n\n```\ncurl http://localhost:8080/public/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/root/.ssh/id_rsa\n```\n**Note** `%2e` is the URL encoded version of `.` (dot).\n\n- **Writing arbitrary files**: Allows the attacker to create or replace existing files. This type of vulnerability is also known as `Zip-Slip`. \n\nOne way to achieve this is by using a malicious `zip` archive that holds path traversal filenames. When each filename in the zip archive gets concatenated to the target extraction folder, without validation, the final path ends up outside of the target folder. If an executable or a configuration file is overwritten with a file containing malicious code, the problem can turn into an arbitrary code execution issue quite easily.\n\nThe following is an example of a `zip` archive with one benign file and one malicious file. Extracting the malicious file will result in traversing out of the target folder, ending up in `/root/.ssh/` overwriting the `authorized_keys` file:\n\n```\n2018-04-15 22:04:29 ..... 19 19 good.txt\n2018-04-15 22:04:42 ..... 20 20 ../../../../../../root/.ssh/authorized_keys\n```\n\n# Remediation\nUpgrade `Werkzeug` to version 3.0.6 or higher.\n# References\n- [GitHub Commit](https://github.com/pallets/werkzeug/commit/2767bcb10a7dd1c297d812cc5e6d11a474c1f092)\n"
|
|
574
|
+
},
|
|
575
|
+
"properties": {
|
|
576
|
+
"tags": [
|
|
577
|
+
"security",
|
|
578
|
+
"CWE-22",
|
|
579
|
+
"poetry"
|
|
580
|
+
],
|
|
581
|
+
"cvssv3_baseScore": 6.3,
|
|
582
|
+
"security-severity": "6.3"
|
|
583
|
+
}
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
"id": "SNYK-PYTHON-WERKZEUG-8309092",
|
|
587
|
+
"shortDescription": {
|
|
588
|
+
"text": "Medium severity - Allocation of Resources Without Limits or Throttling vulnerability in werkzeug"
|
|
589
|
+
},
|
|
590
|
+
"fullDescription": {
|
|
591
|
+
"text": "(CVE-2024-49767) werkzeug@0.16.1"
|
|
592
|
+
},
|
|
593
|
+
"help": {
|
|
594
|
+
"text": "",
|
|
595
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: werkzeug\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-babel@0.12.2 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-cors@3.0.8 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-mail@0.9.1 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-restful@0.3.7 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-script@2.0.6 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-wtf@0.14.3 › flask@1.1.1 › werkzeug@0.16.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › flask-sqlalchemy@2.4.0 › flask@1.1.1 › werkzeug@0.16.1\n# Overview\n\nAffected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling in `formparser.MultiPartParser()`. An attacker can cause the parser to consume more memory than the upload size, in excess of `max_form_memory_size`, by sending malicious data in a non-file field of a `multipart/form-data` request.\n# Remediation\nUpgrade `werkzeug` to version 3.0.6 or higher.\n# References\n- [GitHub Commit](https://github.com/pallets/quart/commit/5e78c4169b8eb66b91ead3e62d44721b9e1644ee)\n- [GitHub Commit](https://github.com/pallets/werkzeug/commit/50cfeebcb0727e18cc52ffbeb125f4a66551179b)\n- [GitHub Release](https://github.com/pallets/werkzeug/releases/tag/3.0.6)\n"
|
|
596
|
+
},
|
|
597
|
+
"properties": {
|
|
598
|
+
"tags": [
|
|
599
|
+
"security",
|
|
600
|
+
"CWE-770",
|
|
601
|
+
"poetry"
|
|
602
|
+
],
|
|
603
|
+
"cvssv3_baseScore": 6.9,
|
|
604
|
+
"security-severity": "6.9"
|
|
605
|
+
}
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"id": "SNYK-PYTHON-WTFORMS-40581",
|
|
609
|
+
"shortDescription": {
|
|
610
|
+
"text": "Medium severity - Cross-site Scripting (XSS) vulnerability in wtforms"
|
|
611
|
+
},
|
|
612
|
+
"fullDescription": {
|
|
613
|
+
"text": "wtforms@2.2.1"
|
|
614
|
+
},
|
|
615
|
+
"help": {
|
|
616
|
+
"text": "",
|
|
617
|
+
"markdown": "* Package Manager: poetry\n* Vulnerable module: wtforms\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › wtforms@2.2.1\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-wtf@0.14.3 › wtforms@2.2.1\n# Overview\r\n[`wtforms`](https://pypi.python.org/pypi/wtforms) is a flexible forms validation and rendering library for python web development.\r\n\r\nAffected versions of this package are vulnerable to Cross-site Scripting (XSS) attacks due to the label names not being escaped in `WTForms`.\r\n\r\n# Details\r\n<<XSS>>\r\n\r\n\r\n# References\r\n- [GitHub Issue](https://github.com/wtforms/wtforms/issues/315)"
|
|
618
|
+
},
|
|
619
|
+
"properties": {
|
|
620
|
+
"tags": [
|
|
621
|
+
"security",
|
|
622
|
+
"CWE-79",
|
|
623
|
+
"poetry"
|
|
624
|
+
],
|
|
625
|
+
"cvssv3_baseScore": 4.8,
|
|
626
|
+
"security-severity": "4.8"
|
|
627
|
+
}
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"id": "snyk:lic:pip:python-editor:Apache-2.0",
|
|
631
|
+
"shortDescription": {
|
|
632
|
+
"text": "High severity - Apache-2.0 license vulnerability in python-editor"
|
|
633
|
+
},
|
|
634
|
+
"fullDescription": {
|
|
635
|
+
"text": "python-editor@1.0.4"
|
|
636
|
+
},
|
|
637
|
+
"help": {
|
|
638
|
+
"text": "",
|
|
639
|
+
"markdown": "* Package Manager: poetry\n* Module: python-editor\n* Introduced through: SimplePackage@1.0.0, ihatemoney@4.1.4 and others\n### Detailed paths\n* _Introduced through_: SimplePackage@1.0.0 › ihatemoney@4.1.4 › flask-migrate@2.5.3 › alembic@1.4.3 › python-editor@1.0.4\nApache-2.0 license"
|
|
640
|
+
},
|
|
641
|
+
"properties": {
|
|
642
|
+
"tags": [
|
|
643
|
+
"security",
|
|
644
|
+
"poetry"
|
|
645
|
+
],
|
|
646
|
+
"security-severity": "undefined"
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
]
|
|
650
|
+
}
|
|
651
|
+
},
|
|
652
|
+
"results": [
|
|
653
|
+
{
|
|
654
|
+
"ruleId": "SNYK-PYTHON-BABEL-1278589",
|
|
655
|
+
"level": "warning",
|
|
656
|
+
"message": {
|
|
657
|
+
"text": "This file introduces a vulnerable babel package with a medium severity vulnerability."
|
|
658
|
+
},
|
|
659
|
+
"locations": [
|
|
660
|
+
{
|
|
661
|
+
"physicalLocation": {
|
|
662
|
+
"artifactLocation": {
|
|
663
|
+
"uri": "pyproject.toml"
|
|
664
|
+
},
|
|
665
|
+
"region": {
|
|
666
|
+
"startLine": 1
|
|
667
|
+
}
|
|
668
|
+
},
|
|
669
|
+
"logicalLocations": [
|
|
670
|
+
{
|
|
671
|
+
"fullyQualifiedName": "babel@2.8.0"
|
|
672
|
+
}
|
|
673
|
+
]
|
|
674
|
+
}
|
|
675
|
+
],
|
|
676
|
+
"fixes": [
|
|
677
|
+
{
|
|
678
|
+
"description": {
|
|
679
|
+
"text": "Upgrade to ihatemoney@4.1.4"
|
|
680
|
+
},
|
|
681
|
+
"artifactChanges": [
|
|
682
|
+
{
|
|
683
|
+
"artifactLocation": {
|
|
684
|
+
"uri": "pyproject.toml"
|
|
685
|
+
},
|
|
686
|
+
"replacements": [
|
|
687
|
+
{
|
|
688
|
+
"deletedRegion": {
|
|
689
|
+
"startLine": 1
|
|
690
|
+
},
|
|
691
|
+
"insertedContent": {
|
|
692
|
+
"text": "ihatemoney@4.1.4"
|
|
693
|
+
}
|
|
694
|
+
}
|
|
695
|
+
]
|
|
696
|
+
}
|
|
697
|
+
]
|
|
698
|
+
}
|
|
699
|
+
]
|
|
700
|
+
},
|
|
701
|
+
{
|
|
702
|
+
"ruleId": "SNYK-PYTHON-DNSPYTHON-6241713",
|
|
703
|
+
"level": "warning",
|
|
704
|
+
"message": {
|
|
705
|
+
"text": "This file introduces a vulnerable dnspython package with a medium severity vulnerability."
|
|
706
|
+
},
|
|
707
|
+
"locations": [
|
|
708
|
+
{
|
|
709
|
+
"physicalLocation": {
|
|
710
|
+
"artifactLocation": {
|
|
711
|
+
"uri": "pyproject.toml"
|
|
712
|
+
},
|
|
713
|
+
"region": {
|
|
714
|
+
"startLine": 1
|
|
715
|
+
}
|
|
716
|
+
},
|
|
717
|
+
"logicalLocations": [
|
|
718
|
+
{
|
|
719
|
+
"fullyQualifiedName": "dnspython@2.0.0"
|
|
720
|
+
}
|
|
721
|
+
]
|
|
722
|
+
}
|
|
723
|
+
],
|
|
724
|
+
"fixes": [
|
|
725
|
+
{
|
|
726
|
+
"description": {
|
|
727
|
+
"text": "Upgrade to ihatemoney@4.1.4"
|
|
728
|
+
},
|
|
729
|
+
"artifactChanges": [
|
|
730
|
+
{
|
|
731
|
+
"artifactLocation": {
|
|
732
|
+
"uri": "pyproject.toml"
|
|
733
|
+
},
|
|
734
|
+
"replacements": [
|
|
735
|
+
{
|
|
736
|
+
"deletedRegion": {
|
|
737
|
+
"startLine": 1
|
|
738
|
+
},
|
|
739
|
+
"insertedContent": {
|
|
740
|
+
"text": "ihatemoney@4.1.4"
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
]
|
|
744
|
+
}
|
|
745
|
+
]
|
|
746
|
+
}
|
|
747
|
+
]
|
|
748
|
+
},
|
|
749
|
+
{
|
|
750
|
+
"ruleId": "SNYK-PYTHON-FASTECDSA-511943",
|
|
751
|
+
"level": "warning",
|
|
752
|
+
"message": {
|
|
753
|
+
"text": "This file introduces a vulnerable fastecdsa package with a medium severity vulnerability."
|
|
754
|
+
},
|
|
755
|
+
"locations": [
|
|
756
|
+
{
|
|
757
|
+
"physicalLocation": {
|
|
758
|
+
"artifactLocation": {
|
|
759
|
+
"uri": "pyproject.toml"
|
|
760
|
+
},
|
|
761
|
+
"region": {
|
|
762
|
+
"startLine": 1
|
|
763
|
+
}
|
|
764
|
+
},
|
|
765
|
+
"logicalLocations": [
|
|
766
|
+
{
|
|
767
|
+
"fullyQualifiedName": "fastecdsa@2.1.3"
|
|
768
|
+
}
|
|
769
|
+
]
|
|
770
|
+
}
|
|
771
|
+
],
|
|
772
|
+
"fixes": [
|
|
773
|
+
{
|
|
774
|
+
"description": {
|
|
775
|
+
"text": "Upgrade to fastecdsa@2.1.4"
|
|
776
|
+
},
|
|
777
|
+
"artifactChanges": [
|
|
778
|
+
{
|
|
779
|
+
"artifactLocation": {
|
|
780
|
+
"uri": "pyproject.toml"
|
|
781
|
+
},
|
|
782
|
+
"replacements": [
|
|
783
|
+
{
|
|
784
|
+
"deletedRegion": {
|
|
785
|
+
"startLine": 1
|
|
786
|
+
},
|
|
787
|
+
"insertedContent": {
|
|
788
|
+
"text": "fastecdsa@2.1.4"
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
]
|
|
792
|
+
}
|
|
793
|
+
]
|
|
794
|
+
}
|
|
795
|
+
]
|
|
796
|
+
},
|
|
797
|
+
{
|
|
798
|
+
"ruleId": "SNYK-PYTHON-FASTECDSA-6262045",
|
|
799
|
+
"level": "error",
|
|
800
|
+
"message": {
|
|
801
|
+
"text": "This file introduces a vulnerable fastecdsa package with a high severity vulnerability."
|
|
802
|
+
},
|
|
803
|
+
"locations": [
|
|
804
|
+
{
|
|
805
|
+
"physicalLocation": {
|
|
806
|
+
"artifactLocation": {
|
|
807
|
+
"uri": "pyproject.toml"
|
|
808
|
+
},
|
|
809
|
+
"region": {
|
|
810
|
+
"startLine": 1
|
|
811
|
+
}
|
|
812
|
+
},
|
|
813
|
+
"logicalLocations": [
|
|
814
|
+
{
|
|
815
|
+
"fullyQualifiedName": "fastecdsa@2.1.3"
|
|
816
|
+
}
|
|
817
|
+
]
|
|
818
|
+
}
|
|
819
|
+
],
|
|
820
|
+
"fixes": [
|
|
821
|
+
{
|
|
822
|
+
"description": {
|
|
823
|
+
"text": "Upgrade to fastecdsa@2.3.2"
|
|
824
|
+
},
|
|
825
|
+
"artifactChanges": [
|
|
826
|
+
{
|
|
827
|
+
"artifactLocation": {
|
|
828
|
+
"uri": "pyproject.toml"
|
|
829
|
+
},
|
|
830
|
+
"replacements": [
|
|
831
|
+
{
|
|
832
|
+
"deletedRegion": {
|
|
833
|
+
"startLine": 1
|
|
834
|
+
},
|
|
835
|
+
"insertedContent": {
|
|
836
|
+
"text": "fastecdsa@2.3.2"
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
]
|
|
840
|
+
}
|
|
841
|
+
]
|
|
842
|
+
}
|
|
843
|
+
]
|
|
844
|
+
},
|
|
845
|
+
{
|
|
846
|
+
"ruleId": "SNYK-PYTHON-FLASK-5490129",
|
|
847
|
+
"level": "error",
|
|
848
|
+
"message": {
|
|
849
|
+
"text": "This file introduces a vulnerable flask package with a high severity vulnerability."
|
|
850
|
+
},
|
|
851
|
+
"locations": [
|
|
852
|
+
{
|
|
853
|
+
"physicalLocation": {
|
|
854
|
+
"artifactLocation": {
|
|
855
|
+
"uri": "pyproject.toml"
|
|
856
|
+
},
|
|
857
|
+
"region": {
|
|
858
|
+
"startLine": 1
|
|
859
|
+
}
|
|
860
|
+
},
|
|
861
|
+
"logicalLocations": [
|
|
862
|
+
{
|
|
863
|
+
"fullyQualifiedName": "flask@1.1.1"
|
|
864
|
+
}
|
|
865
|
+
]
|
|
866
|
+
}
|
|
867
|
+
],
|
|
868
|
+
"fixes": [
|
|
869
|
+
{
|
|
870
|
+
"description": {
|
|
871
|
+
"text": "Upgrade to ihatemoney@4.1.4"
|
|
872
|
+
},
|
|
873
|
+
"artifactChanges": [
|
|
874
|
+
{
|
|
875
|
+
"artifactLocation": {
|
|
876
|
+
"uri": "pyproject.toml"
|
|
877
|
+
},
|
|
878
|
+
"replacements": [
|
|
879
|
+
{
|
|
880
|
+
"deletedRegion": {
|
|
881
|
+
"startLine": 1
|
|
882
|
+
},
|
|
883
|
+
"insertedContent": {
|
|
884
|
+
"text": "ihatemoney@4.1.4"
|
|
885
|
+
}
|
|
886
|
+
}
|
|
887
|
+
]
|
|
888
|
+
}
|
|
889
|
+
]
|
|
890
|
+
}
|
|
891
|
+
]
|
|
892
|
+
},
|
|
893
|
+
{
|
|
894
|
+
"ruleId": "SNYK-PYTHON-FLASKCORS-608972",
|
|
895
|
+
"level": "error",
|
|
896
|
+
"message": {
|
|
897
|
+
"text": "This file introduces a vulnerable flask-cors package with a high severity vulnerability."
|
|
898
|
+
},
|
|
899
|
+
"locations": [
|
|
900
|
+
{
|
|
901
|
+
"physicalLocation": {
|
|
902
|
+
"artifactLocation": {
|
|
903
|
+
"uri": "pyproject.toml"
|
|
904
|
+
},
|
|
905
|
+
"region": {
|
|
906
|
+
"startLine": 1
|
|
907
|
+
}
|
|
908
|
+
},
|
|
909
|
+
"logicalLocations": [
|
|
910
|
+
{
|
|
911
|
+
"fullyQualifiedName": "flask-cors@3.0.8"
|
|
912
|
+
}
|
|
913
|
+
]
|
|
914
|
+
}
|
|
915
|
+
],
|
|
916
|
+
"fixes": [
|
|
917
|
+
{
|
|
918
|
+
"description": {
|
|
919
|
+
"text": "Upgrade to ihatemoney@4.1.4"
|
|
920
|
+
},
|
|
921
|
+
"artifactChanges": [
|
|
922
|
+
{
|
|
923
|
+
"artifactLocation": {
|
|
924
|
+
"uri": "pyproject.toml"
|
|
925
|
+
},
|
|
926
|
+
"replacements": [
|
|
927
|
+
{
|
|
928
|
+
"deletedRegion": {
|
|
929
|
+
"startLine": 1
|
|
930
|
+
},
|
|
931
|
+
"insertedContent": {
|
|
932
|
+
"text": "ihatemoney@4.1.4"
|
|
933
|
+
}
|
|
934
|
+
}
|
|
935
|
+
]
|
|
936
|
+
}
|
|
937
|
+
]
|
|
938
|
+
}
|
|
939
|
+
]
|
|
940
|
+
},
|
|
941
|
+
{
|
|
942
|
+
"ruleId": "SNYK-PYTHON-FLASKCORS-6670412",
|
|
943
|
+
"level": "note",
|
|
944
|
+
"message": {
|
|
945
|
+
"text": "This file introduces a vulnerable flask-cors package with a low severity vulnerability."
|
|
946
|
+
},
|
|
947
|
+
"locations": [
|
|
948
|
+
{
|
|
949
|
+
"physicalLocation": {
|
|
950
|
+
"artifactLocation": {
|
|
951
|
+
"uri": "pyproject.toml"
|
|
952
|
+
},
|
|
953
|
+
"region": {
|
|
954
|
+
"startLine": 1
|
|
955
|
+
}
|
|
956
|
+
},
|
|
957
|
+
"logicalLocations": [
|
|
958
|
+
{
|
|
959
|
+
"fullyQualifiedName": "flask-cors@3.0.8"
|
|
960
|
+
}
|
|
961
|
+
]
|
|
962
|
+
}
|
|
963
|
+
],
|
|
964
|
+
"fixes": [
|
|
965
|
+
{
|
|
966
|
+
"description": {
|
|
967
|
+
"text": "Upgrade to ihatemoney@4.1.4"
|
|
968
|
+
},
|
|
969
|
+
"artifactChanges": [
|
|
970
|
+
{
|
|
971
|
+
"artifactLocation": {
|
|
972
|
+
"uri": "pyproject.toml"
|
|
973
|
+
},
|
|
974
|
+
"replacements": [
|
|
975
|
+
{
|
|
976
|
+
"deletedRegion": {
|
|
977
|
+
"startLine": 1
|
|
978
|
+
},
|
|
979
|
+
"insertedContent": {
|
|
980
|
+
"text": "ihatemoney@4.1.4"
|
|
981
|
+
}
|
|
982
|
+
}
|
|
983
|
+
]
|
|
984
|
+
}
|
|
985
|
+
]
|
|
986
|
+
}
|
|
987
|
+
]
|
|
988
|
+
},
|
|
989
|
+
{
|
|
990
|
+
"ruleId": "SNYK-PYTHON-FLASKCORS-9668952",
|
|
991
|
+
"level": "warning",
|
|
992
|
+
"message": {
|
|
993
|
+
"text": "This file introduces a vulnerable flask-cors package with a medium severity vulnerability."
|
|
994
|
+
},
|
|
995
|
+
"locations": [
|
|
996
|
+
{
|
|
997
|
+
"physicalLocation": {
|
|
998
|
+
"artifactLocation": {
|
|
999
|
+
"uri": "pyproject.toml"
|
|
1000
|
+
},
|
|
1001
|
+
"region": {
|
|
1002
|
+
"startLine": 1
|
|
1003
|
+
}
|
|
1004
|
+
},
|
|
1005
|
+
"logicalLocations": [
|
|
1006
|
+
{
|
|
1007
|
+
"fullyQualifiedName": "flask-cors@3.0.8"
|
|
1008
|
+
}
|
|
1009
|
+
]
|
|
1010
|
+
}
|
|
1011
|
+
]
|
|
1012
|
+
},
|
|
1013
|
+
{
|
|
1014
|
+
"ruleId": "SNYK-PYTHON-FLASKCORS-9668953",
|
|
1015
|
+
"level": "warning",
|
|
1016
|
+
"message": {
|
|
1017
|
+
"text": "This file introduces a vulnerable flask-cors package with a medium severity vulnerability."
|
|
1018
|
+
},
|
|
1019
|
+
"locations": [
|
|
1020
|
+
{
|
|
1021
|
+
"physicalLocation": {
|
|
1022
|
+
"artifactLocation": {
|
|
1023
|
+
"uri": "pyproject.toml"
|
|
1024
|
+
},
|
|
1025
|
+
"region": {
|
|
1026
|
+
"startLine": 1
|
|
1027
|
+
}
|
|
1028
|
+
},
|
|
1029
|
+
"logicalLocations": [
|
|
1030
|
+
{
|
|
1031
|
+
"fullyQualifiedName": "flask-cors@3.0.8"
|
|
1032
|
+
}
|
|
1033
|
+
]
|
|
1034
|
+
}
|
|
1035
|
+
]
|
|
1036
|
+
},
|
|
1037
|
+
{
|
|
1038
|
+
"ruleId": "SNYK-PYTHON-FLASKCORS-9668954",
|
|
1039
|
+
"level": "warning",
|
|
1040
|
+
"message": {
|
|
1041
|
+
"text": "This file introduces a vulnerable flask-cors package with a medium severity vulnerability."
|
|
1042
|
+
},
|
|
1043
|
+
"locations": [
|
|
1044
|
+
{
|
|
1045
|
+
"physicalLocation": {
|
|
1046
|
+
"artifactLocation": {
|
|
1047
|
+
"uri": "pyproject.toml"
|
|
1048
|
+
},
|
|
1049
|
+
"region": {
|
|
1050
|
+
"startLine": 1
|
|
1051
|
+
}
|
|
1052
|
+
},
|
|
1053
|
+
"logicalLocations": [
|
|
1054
|
+
{
|
|
1055
|
+
"fullyQualifiedName": "flask-cors@3.0.8"
|
|
1056
|
+
}
|
|
1057
|
+
]
|
|
1058
|
+
}
|
|
1059
|
+
]
|
|
1060
|
+
},
|
|
1061
|
+
{
|
|
1062
|
+
"ruleId": "SNYK-PYTHON-IDNA-6597975",
|
|
1063
|
+
"level": "warning",
|
|
1064
|
+
"message": {
|
|
1065
|
+
"text": "This file introduces a vulnerable idna package with a medium severity vulnerability."
|
|
1066
|
+
},
|
|
1067
|
+
"locations": [
|
|
1068
|
+
{
|
|
1069
|
+
"physicalLocation": {
|
|
1070
|
+
"artifactLocation": {
|
|
1071
|
+
"uri": "pyproject.toml"
|
|
1072
|
+
},
|
|
1073
|
+
"region": {
|
|
1074
|
+
"startLine": 1
|
|
1075
|
+
}
|
|
1076
|
+
},
|
|
1077
|
+
"logicalLocations": [
|
|
1078
|
+
{
|
|
1079
|
+
"fullyQualifiedName": "idna@2.10"
|
|
1080
|
+
}
|
|
1081
|
+
]
|
|
1082
|
+
}
|
|
1083
|
+
],
|
|
1084
|
+
"fixes": [
|
|
1085
|
+
{
|
|
1086
|
+
"description": {
|
|
1087
|
+
"text": "Upgrade to ihatemoney@4.1.4"
|
|
1088
|
+
},
|
|
1089
|
+
"artifactChanges": [
|
|
1090
|
+
{
|
|
1091
|
+
"artifactLocation": {
|
|
1092
|
+
"uri": "pyproject.toml"
|
|
1093
|
+
},
|
|
1094
|
+
"replacements": [
|
|
1095
|
+
{
|
|
1096
|
+
"deletedRegion": {
|
|
1097
|
+
"startLine": 1
|
|
1098
|
+
},
|
|
1099
|
+
"insertedContent": {
|
|
1100
|
+
"text": "ihatemoney@4.1.4"
|
|
1101
|
+
}
|
|
1102
|
+
}
|
|
1103
|
+
]
|
|
1104
|
+
}
|
|
1105
|
+
]
|
|
1106
|
+
}
|
|
1107
|
+
]
|
|
1108
|
+
},
|
|
1109
|
+
{
|
|
1110
|
+
"ruleId": "SNYK-PYTHON-IHATEMONEY-5880460",
|
|
1111
|
+
"level": "warning",
|
|
1112
|
+
"message": {
|
|
1113
|
+
"text": "This file introduces a vulnerable ihatemoney package with a medium severity vulnerability."
|
|
1114
|
+
},
|
|
1115
|
+
"locations": [
|
|
1116
|
+
{
|
|
1117
|
+
"physicalLocation": {
|
|
1118
|
+
"artifactLocation": {
|
|
1119
|
+
"uri": "pyproject.toml"
|
|
1120
|
+
},
|
|
1121
|
+
"region": {
|
|
1122
|
+
"startLine": 1
|
|
1123
|
+
}
|
|
1124
|
+
},
|
|
1125
|
+
"logicalLocations": [
|
|
1126
|
+
{
|
|
1127
|
+
"fullyQualifiedName": "ihatemoney@4.1.4"
|
|
1128
|
+
}
|
|
1129
|
+
]
|
|
1130
|
+
}
|
|
1131
|
+
],
|
|
1132
|
+
"fixes": [
|
|
1133
|
+
{
|
|
1134
|
+
"description": {
|
|
1135
|
+
"text": "Upgrade to ihatemoney@6.0.0"
|
|
1136
|
+
},
|
|
1137
|
+
"artifactChanges": [
|
|
1138
|
+
{
|
|
1139
|
+
"artifactLocation": {
|
|
1140
|
+
"uri": "pyproject.toml"
|
|
1141
|
+
},
|
|
1142
|
+
"replacements": [
|
|
1143
|
+
{
|
|
1144
|
+
"deletedRegion": {
|
|
1145
|
+
"startLine": 1
|
|
1146
|
+
},
|
|
1147
|
+
"insertedContent": {
|
|
1148
|
+
"text": "ihatemoney@6.0.0"
|
|
1149
|
+
}
|
|
1150
|
+
}
|
|
1151
|
+
]
|
|
1152
|
+
}
|
|
1153
|
+
]
|
|
1154
|
+
}
|
|
1155
|
+
]
|
|
1156
|
+
},
|
|
1157
|
+
{
|
|
1158
|
+
"ruleId": "SNYK-PYTHON-IHATEMONEY-5926703",
|
|
1159
|
+
"level": "warning",
|
|
1160
|
+
"message": {
|
|
1161
|
+
"text": "This file introduces a vulnerable ihatemoney package with a medium severity vulnerability."
|
|
1162
|
+
},
|
|
1163
|
+
"locations": [
|
|
1164
|
+
{
|
|
1165
|
+
"physicalLocation": {
|
|
1166
|
+
"artifactLocation": {
|
|
1167
|
+
"uri": "pyproject.toml"
|
|
1168
|
+
},
|
|
1169
|
+
"region": {
|
|
1170
|
+
"startLine": 1
|
|
1171
|
+
}
|
|
1172
|
+
},
|
|
1173
|
+
"logicalLocations": [
|
|
1174
|
+
{
|
|
1175
|
+
"fullyQualifiedName": "ihatemoney@4.1.4"
|
|
1176
|
+
}
|
|
1177
|
+
]
|
|
1178
|
+
}
|
|
1179
|
+
],
|
|
1180
|
+
"fixes": [
|
|
1181
|
+
{
|
|
1182
|
+
"description": {
|
|
1183
|
+
"text": "Upgrade to ihatemoney@6.0.0"
|
|
1184
|
+
},
|
|
1185
|
+
"artifactChanges": [
|
|
1186
|
+
{
|
|
1187
|
+
"artifactLocation": {
|
|
1188
|
+
"uri": "pyproject.toml"
|
|
1189
|
+
},
|
|
1190
|
+
"replacements": [
|
|
1191
|
+
{
|
|
1192
|
+
"deletedRegion": {
|
|
1193
|
+
"startLine": 1
|
|
1194
|
+
},
|
|
1195
|
+
"insertedContent": {
|
|
1196
|
+
"text": "ihatemoney@6.0.0"
|
|
1197
|
+
}
|
|
1198
|
+
}
|
|
1199
|
+
]
|
|
1200
|
+
}
|
|
1201
|
+
]
|
|
1202
|
+
}
|
|
1203
|
+
]
|
|
1204
|
+
},
|
|
1205
|
+
{
|
|
1206
|
+
"ruleId": "SNYK-PYTHON-IHATEMONEY-595715",
|
|
1207
|
+
"level": "warning",
|
|
1208
|
+
"message": {
|
|
1209
|
+
"text": "This file introduces a vulnerable ihatemoney package with a medium severity vulnerability."
|
|
1210
|
+
},
|
|
1211
|
+
"locations": [
|
|
1212
|
+
{
|
|
1213
|
+
"physicalLocation": {
|
|
1214
|
+
"artifactLocation": {
|
|
1215
|
+
"uri": "pyproject.toml"
|
|
1216
|
+
},
|
|
1217
|
+
"region": {
|
|
1218
|
+
"startLine": 1
|
|
1219
|
+
}
|
|
1220
|
+
},
|
|
1221
|
+
"logicalLocations": [
|
|
1222
|
+
{
|
|
1223
|
+
"fullyQualifiedName": "ihatemoney@4.1.4"
|
|
1224
|
+
}
|
|
1225
|
+
]
|
|
1226
|
+
}
|
|
1227
|
+
],
|
|
1228
|
+
"fixes": [
|
|
1229
|
+
{
|
|
1230
|
+
"description": {
|
|
1231
|
+
"text": "Upgrade to ihatemoney@4.1.5"
|
|
1232
|
+
},
|
|
1233
|
+
"artifactChanges": [
|
|
1234
|
+
{
|
|
1235
|
+
"artifactLocation": {
|
|
1236
|
+
"uri": "pyproject.toml"
|
|
1237
|
+
},
|
|
1238
|
+
"replacements": [
|
|
1239
|
+
{
|
|
1240
|
+
"deletedRegion": {
|
|
1241
|
+
"startLine": 1
|
|
1242
|
+
},
|
|
1243
|
+
"insertedContent": {
|
|
1244
|
+
"text": "ihatemoney@4.1.5"
|
|
1245
|
+
}
|
|
1246
|
+
}
|
|
1247
|
+
]
|
|
1248
|
+
}
|
|
1249
|
+
]
|
|
1250
|
+
}
|
|
1251
|
+
]
|
|
1252
|
+
},
|
|
1253
|
+
{
|
|
1254
|
+
"ruleId": "SNYK-PYTHON-JINJA2-1012994",
|
|
1255
|
+
"level": "warning",
|
|
1256
|
+
"message": {
|
|
1257
|
+
"text": "This file introduces a vulnerable jinja2 package with a medium severity vulnerability."
|
|
1258
|
+
},
|
|
1259
|
+
"locations": [
|
|
1260
|
+
{
|
|
1261
|
+
"physicalLocation": {
|
|
1262
|
+
"artifactLocation": {
|
|
1263
|
+
"uri": "pyproject.toml"
|
|
1264
|
+
},
|
|
1265
|
+
"region": {
|
|
1266
|
+
"startLine": 1
|
|
1267
|
+
}
|
|
1268
|
+
},
|
|
1269
|
+
"logicalLocations": [
|
|
1270
|
+
{
|
|
1271
|
+
"fullyQualifiedName": "jinja2@2.10.1"
|
|
1272
|
+
}
|
|
1273
|
+
]
|
|
1274
|
+
}
|
|
1275
|
+
],
|
|
1276
|
+
"fixes": [
|
|
1277
|
+
{
|
|
1278
|
+
"description": {
|
|
1279
|
+
"text": "Upgrade to jinja2@2.11.3"
|
|
1280
|
+
},
|
|
1281
|
+
"artifactChanges": [
|
|
1282
|
+
{
|
|
1283
|
+
"artifactLocation": {
|
|
1284
|
+
"uri": "pyproject.toml"
|
|
1285
|
+
},
|
|
1286
|
+
"replacements": [
|
|
1287
|
+
{
|
|
1288
|
+
"deletedRegion": {
|
|
1289
|
+
"startLine": 1
|
|
1290
|
+
},
|
|
1291
|
+
"insertedContent": {
|
|
1292
|
+
"text": "jinja2@2.11.3"
|
|
1293
|
+
}
|
|
1294
|
+
}
|
|
1295
|
+
]
|
|
1296
|
+
}
|
|
1297
|
+
]
|
|
1298
|
+
}
|
|
1299
|
+
]
|
|
1300
|
+
},
|
|
1301
|
+
{
|
|
1302
|
+
"ruleId": "SNYK-PYTHON-JINJA2-6150717",
|
|
1303
|
+
"level": "warning",
|
|
1304
|
+
"message": {
|
|
1305
|
+
"text": "This file introduces a vulnerable jinja2 package with a medium severity vulnerability."
|
|
1306
|
+
},
|
|
1307
|
+
"locations": [
|
|
1308
|
+
{
|
|
1309
|
+
"physicalLocation": {
|
|
1310
|
+
"artifactLocation": {
|
|
1311
|
+
"uri": "pyproject.toml"
|
|
1312
|
+
},
|
|
1313
|
+
"region": {
|
|
1314
|
+
"startLine": 1
|
|
1315
|
+
}
|
|
1316
|
+
},
|
|
1317
|
+
"logicalLocations": [
|
|
1318
|
+
{
|
|
1319
|
+
"fullyQualifiedName": "jinja2@2.10.1"
|
|
1320
|
+
}
|
|
1321
|
+
]
|
|
1322
|
+
}
|
|
1323
|
+
],
|
|
1324
|
+
"fixes": [
|
|
1325
|
+
{
|
|
1326
|
+
"description": {
|
|
1327
|
+
"text": "Upgrade to jinja2@3.1.3"
|
|
1328
|
+
},
|
|
1329
|
+
"artifactChanges": [
|
|
1330
|
+
{
|
|
1331
|
+
"artifactLocation": {
|
|
1332
|
+
"uri": "pyproject.toml"
|
|
1333
|
+
},
|
|
1334
|
+
"replacements": [
|
|
1335
|
+
{
|
|
1336
|
+
"deletedRegion": {
|
|
1337
|
+
"startLine": 1
|
|
1338
|
+
},
|
|
1339
|
+
"insertedContent": {
|
|
1340
|
+
"text": "jinja2@3.1.3"
|
|
1341
|
+
}
|
|
1342
|
+
}
|
|
1343
|
+
]
|
|
1344
|
+
}
|
|
1345
|
+
]
|
|
1346
|
+
}
|
|
1347
|
+
]
|
|
1348
|
+
},
|
|
1349
|
+
{
|
|
1350
|
+
"ruleId": "SNYK-PYTHON-JINJA2-6809379",
|
|
1351
|
+
"level": "warning",
|
|
1352
|
+
"message": {
|
|
1353
|
+
"text": "This file introduces a vulnerable jinja2 package with a medium severity vulnerability."
|
|
1354
|
+
},
|
|
1355
|
+
"locations": [
|
|
1356
|
+
{
|
|
1357
|
+
"physicalLocation": {
|
|
1358
|
+
"artifactLocation": {
|
|
1359
|
+
"uri": "pyproject.toml"
|
|
1360
|
+
},
|
|
1361
|
+
"region": {
|
|
1362
|
+
"startLine": 1
|
|
1363
|
+
}
|
|
1364
|
+
},
|
|
1365
|
+
"logicalLocations": [
|
|
1366
|
+
{
|
|
1367
|
+
"fullyQualifiedName": "jinja2@2.10.1"
|
|
1368
|
+
}
|
|
1369
|
+
]
|
|
1370
|
+
}
|
|
1371
|
+
],
|
|
1372
|
+
"fixes": [
|
|
1373
|
+
{
|
|
1374
|
+
"description": {
|
|
1375
|
+
"text": "Upgrade to jinja2@3.1.4"
|
|
1376
|
+
},
|
|
1377
|
+
"artifactChanges": [
|
|
1378
|
+
{
|
|
1379
|
+
"artifactLocation": {
|
|
1380
|
+
"uri": "pyproject.toml"
|
|
1381
|
+
},
|
|
1382
|
+
"replacements": [
|
|
1383
|
+
{
|
|
1384
|
+
"deletedRegion": {
|
|
1385
|
+
"startLine": 1
|
|
1386
|
+
},
|
|
1387
|
+
"insertedContent": {
|
|
1388
|
+
"text": "jinja2@3.1.4"
|
|
1389
|
+
}
|
|
1390
|
+
}
|
|
1391
|
+
]
|
|
1392
|
+
}
|
|
1393
|
+
]
|
|
1394
|
+
}
|
|
1395
|
+
]
|
|
1396
|
+
},
|
|
1397
|
+
{
|
|
1398
|
+
"ruleId": "SNYK-PYTHON-JINJA2-8548181",
|
|
1399
|
+
"level": "warning",
|
|
1400
|
+
"message": {
|
|
1401
|
+
"text": "This file introduces a vulnerable jinja2 package with a medium severity vulnerability."
|
|
1402
|
+
},
|
|
1403
|
+
"locations": [
|
|
1404
|
+
{
|
|
1405
|
+
"physicalLocation": {
|
|
1406
|
+
"artifactLocation": {
|
|
1407
|
+
"uri": "pyproject.toml"
|
|
1408
|
+
},
|
|
1409
|
+
"region": {
|
|
1410
|
+
"startLine": 1
|
|
1411
|
+
}
|
|
1412
|
+
},
|
|
1413
|
+
"logicalLocations": [
|
|
1414
|
+
{
|
|
1415
|
+
"fullyQualifiedName": "jinja2@2.10.1"
|
|
1416
|
+
}
|
|
1417
|
+
]
|
|
1418
|
+
}
|
|
1419
|
+
],
|
|
1420
|
+
"fixes": [
|
|
1421
|
+
{
|
|
1422
|
+
"description": {
|
|
1423
|
+
"text": "Upgrade to jinja2@3.1.5"
|
|
1424
|
+
},
|
|
1425
|
+
"artifactChanges": [
|
|
1426
|
+
{
|
|
1427
|
+
"artifactLocation": {
|
|
1428
|
+
"uri": "pyproject.toml"
|
|
1429
|
+
},
|
|
1430
|
+
"replacements": [
|
|
1431
|
+
{
|
|
1432
|
+
"deletedRegion": {
|
|
1433
|
+
"startLine": 1
|
|
1434
|
+
},
|
|
1435
|
+
"insertedContent": {
|
|
1436
|
+
"text": "jinja2@3.1.5"
|
|
1437
|
+
}
|
|
1438
|
+
}
|
|
1439
|
+
]
|
|
1440
|
+
}
|
|
1441
|
+
]
|
|
1442
|
+
}
|
|
1443
|
+
]
|
|
1444
|
+
},
|
|
1445
|
+
{
|
|
1446
|
+
"ruleId": "SNYK-PYTHON-JINJA2-8548987",
|
|
1447
|
+
"level": "warning",
|
|
1448
|
+
"message": {
|
|
1449
|
+
"text": "This file introduces a vulnerable jinja2 package with a medium severity vulnerability."
|
|
1450
|
+
},
|
|
1451
|
+
"locations": [
|
|
1452
|
+
{
|
|
1453
|
+
"physicalLocation": {
|
|
1454
|
+
"artifactLocation": {
|
|
1455
|
+
"uri": "pyproject.toml"
|
|
1456
|
+
},
|
|
1457
|
+
"region": {
|
|
1458
|
+
"startLine": 1
|
|
1459
|
+
}
|
|
1460
|
+
},
|
|
1461
|
+
"logicalLocations": [
|
|
1462
|
+
{
|
|
1463
|
+
"fullyQualifiedName": "jinja2@2.10.1"
|
|
1464
|
+
}
|
|
1465
|
+
]
|
|
1466
|
+
}
|
|
1467
|
+
],
|
|
1468
|
+
"fixes": [
|
|
1469
|
+
{
|
|
1470
|
+
"description": {
|
|
1471
|
+
"text": "Upgrade to jinja2@3.1.5"
|
|
1472
|
+
},
|
|
1473
|
+
"artifactChanges": [
|
|
1474
|
+
{
|
|
1475
|
+
"artifactLocation": {
|
|
1476
|
+
"uri": "pyproject.toml"
|
|
1477
|
+
},
|
|
1478
|
+
"replacements": [
|
|
1479
|
+
{
|
|
1480
|
+
"deletedRegion": {
|
|
1481
|
+
"startLine": 1
|
|
1482
|
+
},
|
|
1483
|
+
"insertedContent": {
|
|
1484
|
+
"text": "jinja2@3.1.5"
|
|
1485
|
+
}
|
|
1486
|
+
}
|
|
1487
|
+
]
|
|
1488
|
+
}
|
|
1489
|
+
]
|
|
1490
|
+
}
|
|
1491
|
+
]
|
|
1492
|
+
},
|
|
1493
|
+
{
|
|
1494
|
+
"ruleId": "SNYK-PYTHON-JINJA2-9292516",
|
|
1495
|
+
"level": "warning",
|
|
1496
|
+
"message": {
|
|
1497
|
+
"text": "This file introduces a vulnerable jinja2 package with a medium severity vulnerability."
|
|
1498
|
+
},
|
|
1499
|
+
"locations": [
|
|
1500
|
+
{
|
|
1501
|
+
"physicalLocation": {
|
|
1502
|
+
"artifactLocation": {
|
|
1503
|
+
"uri": "pyproject.toml"
|
|
1504
|
+
},
|
|
1505
|
+
"region": {
|
|
1506
|
+
"startLine": 1
|
|
1507
|
+
}
|
|
1508
|
+
},
|
|
1509
|
+
"logicalLocations": [
|
|
1510
|
+
{
|
|
1511
|
+
"fullyQualifiedName": "jinja2@2.10.1"
|
|
1512
|
+
}
|
|
1513
|
+
]
|
|
1514
|
+
}
|
|
1515
|
+
],
|
|
1516
|
+
"fixes": [
|
|
1517
|
+
{
|
|
1518
|
+
"description": {
|
|
1519
|
+
"text": "Upgrade to jinja2@3.1.6"
|
|
1520
|
+
},
|
|
1521
|
+
"artifactChanges": [
|
|
1522
|
+
{
|
|
1523
|
+
"artifactLocation": {
|
|
1524
|
+
"uri": "pyproject.toml"
|
|
1525
|
+
},
|
|
1526
|
+
"replacements": [
|
|
1527
|
+
{
|
|
1528
|
+
"deletedRegion": {
|
|
1529
|
+
"startLine": 1
|
|
1530
|
+
},
|
|
1531
|
+
"insertedContent": {
|
|
1532
|
+
"text": "jinja2@3.1.6"
|
|
1533
|
+
}
|
|
1534
|
+
}
|
|
1535
|
+
]
|
|
1536
|
+
}
|
|
1537
|
+
]
|
|
1538
|
+
}
|
|
1539
|
+
]
|
|
1540
|
+
},
|
|
1541
|
+
{
|
|
1542
|
+
"ruleId": "SNYK-PYTHON-MAKO-3017600",
|
|
1543
|
+
"level": "warning",
|
|
1544
|
+
"message": {
|
|
1545
|
+
"text": "This file introduces a vulnerable mako package with a medium severity vulnerability."
|
|
1546
|
+
},
|
|
1547
|
+
"locations": [
|
|
1548
|
+
{
|
|
1549
|
+
"physicalLocation": {
|
|
1550
|
+
"artifactLocation": {
|
|
1551
|
+
"uri": "pyproject.toml"
|
|
1552
|
+
},
|
|
1553
|
+
"region": {
|
|
1554
|
+
"startLine": 1
|
|
1555
|
+
}
|
|
1556
|
+
},
|
|
1557
|
+
"logicalLocations": [
|
|
1558
|
+
{
|
|
1559
|
+
"fullyQualifiedName": "mako@1.1.3"
|
|
1560
|
+
}
|
|
1561
|
+
]
|
|
1562
|
+
}
|
|
1563
|
+
],
|
|
1564
|
+
"fixes": [
|
|
1565
|
+
{
|
|
1566
|
+
"description": {
|
|
1567
|
+
"text": "Upgrade to ihatemoney@4.1.4"
|
|
1568
|
+
},
|
|
1569
|
+
"artifactChanges": [
|
|
1570
|
+
{
|
|
1571
|
+
"artifactLocation": {
|
|
1572
|
+
"uri": "pyproject.toml"
|
|
1573
|
+
},
|
|
1574
|
+
"replacements": [
|
|
1575
|
+
{
|
|
1576
|
+
"deletedRegion": {
|
|
1577
|
+
"startLine": 1
|
|
1578
|
+
},
|
|
1579
|
+
"insertedContent": {
|
|
1580
|
+
"text": "ihatemoney@4.1.4"
|
|
1581
|
+
}
|
|
1582
|
+
}
|
|
1583
|
+
]
|
|
1584
|
+
}
|
|
1585
|
+
]
|
|
1586
|
+
}
|
|
1587
|
+
]
|
|
1588
|
+
},
|
|
1589
|
+
{
|
|
1590
|
+
"ruleId": "SNYK-PYTHON-WERKZEUG-3319935",
|
|
1591
|
+
"level": "note",
|
|
1592
|
+
"message": {
|
|
1593
|
+
"text": "This file introduces a vulnerable werkzeug package with a low severity vulnerability."
|
|
1594
|
+
},
|
|
1595
|
+
"locations": [
|
|
1596
|
+
{
|
|
1597
|
+
"physicalLocation": {
|
|
1598
|
+
"artifactLocation": {
|
|
1599
|
+
"uri": "pyproject.toml"
|
|
1600
|
+
},
|
|
1601
|
+
"region": {
|
|
1602
|
+
"startLine": 1
|
|
1603
|
+
}
|
|
1604
|
+
},
|
|
1605
|
+
"logicalLocations": [
|
|
1606
|
+
{
|
|
1607
|
+
"fullyQualifiedName": "werkzeug@0.16.1"
|
|
1608
|
+
}
|
|
1609
|
+
]
|
|
1610
|
+
}
|
|
1611
|
+
],
|
|
1612
|
+
"fixes": [
|
|
1613
|
+
{
|
|
1614
|
+
"description": {
|
|
1615
|
+
"text": "Upgrade to ihatemoney@4.1.4"
|
|
1616
|
+
},
|
|
1617
|
+
"artifactChanges": [
|
|
1618
|
+
{
|
|
1619
|
+
"artifactLocation": {
|
|
1620
|
+
"uri": "pyproject.toml"
|
|
1621
|
+
},
|
|
1622
|
+
"replacements": [
|
|
1623
|
+
{
|
|
1624
|
+
"deletedRegion": {
|
|
1625
|
+
"startLine": 1
|
|
1626
|
+
},
|
|
1627
|
+
"insertedContent": {
|
|
1628
|
+
"text": "ihatemoney@4.1.4"
|
|
1629
|
+
}
|
|
1630
|
+
}
|
|
1631
|
+
]
|
|
1632
|
+
}
|
|
1633
|
+
]
|
|
1634
|
+
}
|
|
1635
|
+
]
|
|
1636
|
+
},
|
|
1637
|
+
{
|
|
1638
|
+
"ruleId": "SNYK-PYTHON-WERKZEUG-3319936",
|
|
1639
|
+
"level": "error",
|
|
1640
|
+
"message": {
|
|
1641
|
+
"text": "This file introduces a vulnerable werkzeug package with a high severity vulnerability."
|
|
1642
|
+
},
|
|
1643
|
+
"locations": [
|
|
1644
|
+
{
|
|
1645
|
+
"physicalLocation": {
|
|
1646
|
+
"artifactLocation": {
|
|
1647
|
+
"uri": "pyproject.toml"
|
|
1648
|
+
},
|
|
1649
|
+
"region": {
|
|
1650
|
+
"startLine": 1
|
|
1651
|
+
}
|
|
1652
|
+
},
|
|
1653
|
+
"logicalLocations": [
|
|
1654
|
+
{
|
|
1655
|
+
"fullyQualifiedName": "werkzeug@0.16.1"
|
|
1656
|
+
}
|
|
1657
|
+
]
|
|
1658
|
+
}
|
|
1659
|
+
],
|
|
1660
|
+
"fixes": [
|
|
1661
|
+
{
|
|
1662
|
+
"description": {
|
|
1663
|
+
"text": "Upgrade to ihatemoney@4.1.4"
|
|
1664
|
+
},
|
|
1665
|
+
"artifactChanges": [
|
|
1666
|
+
{
|
|
1667
|
+
"artifactLocation": {
|
|
1668
|
+
"uri": "pyproject.toml"
|
|
1669
|
+
},
|
|
1670
|
+
"replacements": [
|
|
1671
|
+
{
|
|
1672
|
+
"deletedRegion": {
|
|
1673
|
+
"startLine": 1
|
|
1674
|
+
},
|
|
1675
|
+
"insertedContent": {
|
|
1676
|
+
"text": "ihatemoney@4.1.4"
|
|
1677
|
+
}
|
|
1678
|
+
}
|
|
1679
|
+
]
|
|
1680
|
+
}
|
|
1681
|
+
]
|
|
1682
|
+
}
|
|
1683
|
+
]
|
|
1684
|
+
},
|
|
1685
|
+
{
|
|
1686
|
+
"ruleId": "SNYK-PYTHON-WERKZEUG-6035177",
|
|
1687
|
+
"level": "warning",
|
|
1688
|
+
"message": {
|
|
1689
|
+
"text": "This file introduces a vulnerable werkzeug package with a medium severity vulnerability."
|
|
1690
|
+
},
|
|
1691
|
+
"locations": [
|
|
1692
|
+
{
|
|
1693
|
+
"physicalLocation": {
|
|
1694
|
+
"artifactLocation": {
|
|
1695
|
+
"uri": "pyproject.toml"
|
|
1696
|
+
},
|
|
1697
|
+
"region": {
|
|
1698
|
+
"startLine": 1
|
|
1699
|
+
}
|
|
1700
|
+
},
|
|
1701
|
+
"logicalLocations": [
|
|
1702
|
+
{
|
|
1703
|
+
"fullyQualifiedName": "werkzeug@0.16.1"
|
|
1704
|
+
}
|
|
1705
|
+
]
|
|
1706
|
+
}
|
|
1707
|
+
],
|
|
1708
|
+
"fixes": [
|
|
1709
|
+
{
|
|
1710
|
+
"description": {
|
|
1711
|
+
"text": "Upgrade to ihatemoney@4.1.4"
|
|
1712
|
+
},
|
|
1713
|
+
"artifactChanges": [
|
|
1714
|
+
{
|
|
1715
|
+
"artifactLocation": {
|
|
1716
|
+
"uri": "pyproject.toml"
|
|
1717
|
+
},
|
|
1718
|
+
"replacements": [
|
|
1719
|
+
{
|
|
1720
|
+
"deletedRegion": {
|
|
1721
|
+
"startLine": 1
|
|
1722
|
+
},
|
|
1723
|
+
"insertedContent": {
|
|
1724
|
+
"text": "ihatemoney@4.1.4"
|
|
1725
|
+
}
|
|
1726
|
+
}
|
|
1727
|
+
]
|
|
1728
|
+
}
|
|
1729
|
+
]
|
|
1730
|
+
}
|
|
1731
|
+
]
|
|
1732
|
+
},
|
|
1733
|
+
{
|
|
1734
|
+
"ruleId": "SNYK-PYTHON-WERKZEUG-6808933",
|
|
1735
|
+
"level": "error",
|
|
1736
|
+
"message": {
|
|
1737
|
+
"text": "This file introduces a vulnerable werkzeug package with a high severity vulnerability."
|
|
1738
|
+
},
|
|
1739
|
+
"locations": [
|
|
1740
|
+
{
|
|
1741
|
+
"physicalLocation": {
|
|
1742
|
+
"artifactLocation": {
|
|
1743
|
+
"uri": "pyproject.toml"
|
|
1744
|
+
},
|
|
1745
|
+
"region": {
|
|
1746
|
+
"startLine": 1
|
|
1747
|
+
}
|
|
1748
|
+
},
|
|
1749
|
+
"logicalLocations": [
|
|
1750
|
+
{
|
|
1751
|
+
"fullyQualifiedName": "werkzeug@0.16.1"
|
|
1752
|
+
}
|
|
1753
|
+
]
|
|
1754
|
+
}
|
|
1755
|
+
],
|
|
1756
|
+
"fixes": [
|
|
1757
|
+
{
|
|
1758
|
+
"description": {
|
|
1759
|
+
"text": "Upgrade to ihatemoney@4.1.4"
|
|
1760
|
+
},
|
|
1761
|
+
"artifactChanges": [
|
|
1762
|
+
{
|
|
1763
|
+
"artifactLocation": {
|
|
1764
|
+
"uri": "pyproject.toml"
|
|
1765
|
+
},
|
|
1766
|
+
"replacements": [
|
|
1767
|
+
{
|
|
1768
|
+
"deletedRegion": {
|
|
1769
|
+
"startLine": 1
|
|
1770
|
+
},
|
|
1771
|
+
"insertedContent": {
|
|
1772
|
+
"text": "ihatemoney@4.1.4"
|
|
1773
|
+
}
|
|
1774
|
+
}
|
|
1775
|
+
]
|
|
1776
|
+
}
|
|
1777
|
+
]
|
|
1778
|
+
}
|
|
1779
|
+
]
|
|
1780
|
+
},
|
|
1781
|
+
{
|
|
1782
|
+
"ruleId": "SNYK-PYTHON-WERKZEUG-8309091",
|
|
1783
|
+
"level": "warning",
|
|
1784
|
+
"message": {
|
|
1785
|
+
"text": "This file introduces a vulnerable werkzeug package with a medium severity vulnerability."
|
|
1786
|
+
},
|
|
1787
|
+
"locations": [
|
|
1788
|
+
{
|
|
1789
|
+
"physicalLocation": {
|
|
1790
|
+
"artifactLocation": {
|
|
1791
|
+
"uri": "pyproject.toml"
|
|
1792
|
+
},
|
|
1793
|
+
"region": {
|
|
1794
|
+
"startLine": 1
|
|
1795
|
+
}
|
|
1796
|
+
},
|
|
1797
|
+
"logicalLocations": [
|
|
1798
|
+
{
|
|
1799
|
+
"fullyQualifiedName": "werkzeug@0.16.1"
|
|
1800
|
+
}
|
|
1801
|
+
]
|
|
1802
|
+
}
|
|
1803
|
+
],
|
|
1804
|
+
"fixes": [
|
|
1805
|
+
{
|
|
1806
|
+
"description": {
|
|
1807
|
+
"text": "Upgrade to ihatemoney@4.1.4"
|
|
1808
|
+
},
|
|
1809
|
+
"artifactChanges": [
|
|
1810
|
+
{
|
|
1811
|
+
"artifactLocation": {
|
|
1812
|
+
"uri": "pyproject.toml"
|
|
1813
|
+
},
|
|
1814
|
+
"replacements": [
|
|
1815
|
+
{
|
|
1816
|
+
"deletedRegion": {
|
|
1817
|
+
"startLine": 1
|
|
1818
|
+
},
|
|
1819
|
+
"insertedContent": {
|
|
1820
|
+
"text": "ihatemoney@4.1.4"
|
|
1821
|
+
}
|
|
1822
|
+
}
|
|
1823
|
+
]
|
|
1824
|
+
}
|
|
1825
|
+
]
|
|
1826
|
+
}
|
|
1827
|
+
]
|
|
1828
|
+
},
|
|
1829
|
+
{
|
|
1830
|
+
"ruleId": "SNYK-PYTHON-WERKZEUG-8309092",
|
|
1831
|
+
"level": "warning",
|
|
1832
|
+
"message": {
|
|
1833
|
+
"text": "This file introduces a vulnerable werkzeug package with a medium severity vulnerability."
|
|
1834
|
+
},
|
|
1835
|
+
"locations": [
|
|
1836
|
+
{
|
|
1837
|
+
"physicalLocation": {
|
|
1838
|
+
"artifactLocation": {
|
|
1839
|
+
"uri": "pyproject.toml"
|
|
1840
|
+
},
|
|
1841
|
+
"region": {
|
|
1842
|
+
"startLine": 1
|
|
1843
|
+
}
|
|
1844
|
+
},
|
|
1845
|
+
"logicalLocations": [
|
|
1846
|
+
{
|
|
1847
|
+
"fullyQualifiedName": "werkzeug@0.16.1"
|
|
1848
|
+
}
|
|
1849
|
+
]
|
|
1850
|
+
}
|
|
1851
|
+
],
|
|
1852
|
+
"fixes": [
|
|
1853
|
+
{
|
|
1854
|
+
"description": {
|
|
1855
|
+
"text": "Upgrade to ihatemoney@4.1.4"
|
|
1856
|
+
},
|
|
1857
|
+
"artifactChanges": [
|
|
1858
|
+
{
|
|
1859
|
+
"artifactLocation": {
|
|
1860
|
+
"uri": "pyproject.toml"
|
|
1861
|
+
},
|
|
1862
|
+
"replacements": [
|
|
1863
|
+
{
|
|
1864
|
+
"deletedRegion": {
|
|
1865
|
+
"startLine": 1
|
|
1866
|
+
},
|
|
1867
|
+
"insertedContent": {
|
|
1868
|
+
"text": "ihatemoney@4.1.4"
|
|
1869
|
+
}
|
|
1870
|
+
}
|
|
1871
|
+
]
|
|
1872
|
+
}
|
|
1873
|
+
]
|
|
1874
|
+
}
|
|
1875
|
+
]
|
|
1876
|
+
},
|
|
1877
|
+
{
|
|
1878
|
+
"ruleId": "SNYK-PYTHON-WTFORMS-40581",
|
|
1879
|
+
"level": "warning",
|
|
1880
|
+
"message": {
|
|
1881
|
+
"text": "This file introduces a vulnerable wtforms package with a medium severity vulnerability."
|
|
1882
|
+
},
|
|
1883
|
+
"locations": [
|
|
1884
|
+
{
|
|
1885
|
+
"physicalLocation": {
|
|
1886
|
+
"artifactLocation": {
|
|
1887
|
+
"uri": "pyproject.toml"
|
|
1888
|
+
},
|
|
1889
|
+
"region": {
|
|
1890
|
+
"startLine": 1
|
|
1891
|
+
}
|
|
1892
|
+
},
|
|
1893
|
+
"logicalLocations": [
|
|
1894
|
+
{
|
|
1895
|
+
"fullyQualifiedName": "wtforms@2.2.1"
|
|
1896
|
+
}
|
|
1897
|
+
]
|
|
1898
|
+
}
|
|
1899
|
+
],
|
|
1900
|
+
"fixes": [
|
|
1901
|
+
{
|
|
1902
|
+
"description": {
|
|
1903
|
+
"text": "Upgrade to ihatemoney@4.1.4"
|
|
1904
|
+
},
|
|
1905
|
+
"artifactChanges": [
|
|
1906
|
+
{
|
|
1907
|
+
"artifactLocation": {
|
|
1908
|
+
"uri": "pyproject.toml"
|
|
1909
|
+
},
|
|
1910
|
+
"replacements": [
|
|
1911
|
+
{
|
|
1912
|
+
"deletedRegion": {
|
|
1913
|
+
"startLine": 1
|
|
1914
|
+
},
|
|
1915
|
+
"insertedContent": {
|
|
1916
|
+
"text": "ihatemoney@4.1.4"
|
|
1917
|
+
}
|
|
1918
|
+
}
|
|
1919
|
+
]
|
|
1920
|
+
}
|
|
1921
|
+
]
|
|
1922
|
+
}
|
|
1923
|
+
]
|
|
1924
|
+
},
|
|
1925
|
+
{
|
|
1926
|
+
"ruleId": "snyk:lic:pip:python-editor:Apache-2.0",
|
|
1927
|
+
"level": "error",
|
|
1928
|
+
"message": {
|
|
1929
|
+
"text": "This file introduces a vulnerable python-editor package with a high severity vulnerability."
|
|
1930
|
+
},
|
|
1931
|
+
"locations": [
|
|
1932
|
+
{
|
|
1933
|
+
"physicalLocation": {
|
|
1934
|
+
"artifactLocation": {
|
|
1935
|
+
"uri": "pyproject.toml"
|
|
1936
|
+
},
|
|
1937
|
+
"region": {
|
|
1938
|
+
"startLine": 1
|
|
1939
|
+
}
|
|
1940
|
+
},
|
|
1941
|
+
"logicalLocations": [
|
|
1942
|
+
{
|
|
1943
|
+
"fullyQualifiedName": "python-editor@1.0.4"
|
|
1944
|
+
}
|
|
1945
|
+
]
|
|
1946
|
+
}
|
|
1947
|
+
]
|
|
1948
|
+
}
|
|
1949
|
+
]
|
|
1950
|
+
}
|
|
1951
|
+
]
|
|
1952
|
+
}
|