Skip to content

Conversation

@kaxil
Copy link
Member

@kaxil kaxil commented Mar 11, 2021

Turns out #14698 did not fix the issue as Master failed again. After
digging a bit more I found that the CVE was fixed in all
Python versions: 3.6.13, 3.7.10 & 3.8.8 (PR link)

The solution in this PR/commit checks the parse_qsl behavior with
following tests:

❯ docker run -it python:3.8.8-slim bash
root@41120dfd035e:/# python
Python 3.8.8 (default, Feb 19 2021, 18:07:06)
>>> from urllib.parse import parse_qsl
>>> parse_qsl(";a=b")
[(';a', 'b')]
>>>
❯ docker run -it python:3.8.7-slim bash
root@68e527725610:/# python
Python 3.8.7 (default, Feb  9 2021, 08:21:15)
>>> from urllib.parse import parse_qsl
>>> parse_qsl(";a=b")
[('a', 'b')]
>>>

^ Add meaningful description above

Read the Pull Request Guidelines for more information.
In case of fundamental code change, Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in UPDATING.md.

Turns out apache#14698 did not fix the issue as Master failed again. After
digging a bit more I found that the CVE was fixed in all
Python versions: 3.6.13, 3.7.10 & 3.8.8

The solution in this PR/commit checks the `parse_qsl` behavior with
following tests:

```
❯ docker run -it python:3.8-slim bash
root@41120dfd035e:/# python
Python 3.8.8 (default, Feb 19 2021, 18:07:06)
>>> from urllib.parse import parse_qsl
>>> parse_qsl(";a=b")
[(';a', 'b')]
>>>

```
❯ docker run -it python:3.8.7-slim bash
root@68e527725610:/# python
Python 3.8.7 (default, Feb  9 2021, 08:21:15)
>>> from urllib.parse import parse_qsl
>>> parse_qsl(";a=b")
[('a', 'b')]
>>>
```
@boring-cyborg boring-cyborg bot added the area:webserver Webserver related Issues label Mar 11, 2021
@kaxil kaxil merged commit 7bd9d47 into apache:master Mar 11, 2021
@kaxil kaxil deleted the fix-python-error branch March 11, 2021 01:39
@potiuk
Copy link
Member

potiuk commented Mar 11, 2021

Even nicer!

kaxil added a commit to astronomer/airflow that referenced this pull request Mar 11, 2021
One of tests fixed in (apache#14710) had an usused variable - `expected_url`,
copy/paste failure. This commit fixes it and adds a condition too to
only replace url if it contains a semi-colon
kaxil added a commit that referenced this pull request Mar 11, 2021
One of tests fixed in (#14710) had an usused variable - `expected_url`,
copy/paste failure. This commit fixes it and adds a condition too to
only replace url if it contains a semi-colon
ashb pushed a commit that referenced this pull request Mar 19, 2021
Turns out #14698 did not fix the issue as Master failed again. After
digging a bit more I found that the CVE was fixed in all
Python versions: 3.6.13, 3.7.10 & 3.8.8

The solution in this PR/commit checks the `parse_qsl` behavior with
following tests:

```
❯ docker run -it python:3.8-slim bash
root@41120dfd035e:/# python
Python 3.8.8 (default, Feb 19 2021, 18:07:06)
>>> from urllib.parse import parse_qsl
>>> parse_qsl(";a=b")
[(';a', 'b')]
>>>
```

```
❯ docker run -it python:3.8.7-slim bash
root@68e527725610:/# python
Python 3.8.7 (default, Feb  9 2021, 08:21:15)
>>> from urllib.parse import parse_qsl
>>> parse_qsl(";a=b")
[('a', 'b')]
>>>
```

(cherry picked from commit 7bd9d47)
kaxil added a commit that referenced this pull request Mar 19, 2021
Turns out #14698 did not fix the issue as Master failed again. After
digging a bit more I found that the CVE was fixed in all
Python versions: 3.6.13, 3.7.10 & 3.8.8

The solution in this PR/commit checks the `parse_qsl` behavior with
following tests:

```
❯ docker run -it python:3.8-slim bash
root@41120dfd035e:/# python
Python 3.8.8 (default, Feb 19 2021, 18:07:06)
>>> from urllib.parse import parse_qsl
>>> parse_qsl(";a=b")
[(';a', 'b')]
>>>
```

```
❯ docker run -it python:3.8.7-slim bash
root@68e527725610:/# python
Python 3.8.7 (default, Feb  9 2021, 08:21:15)
>>> from urllib.parse import parse_qsl
>>> parse_qsl(";a=b")
[('a', 'b')]
>>>
```

(cherry picked from commit 7bd9d47)
kaxil added a commit that referenced this pull request Mar 19, 2021
One of tests fixed in (#14710) had an usused variable - `expected_url`,
copy/paste failure. This commit fixes it and adds a condition too to
only replace url if it contains a semi-colon

(cherry picked from commit 52604a3)
ashb pushed a commit that referenced this pull request Apr 15, 2021
Turns out #14698 did not fix the issue as Master failed again. After
digging a bit more I found that the CVE was fixed in all
Python versions: 3.6.13, 3.7.10 & 3.8.8

The solution in this PR/commit checks the `parse_qsl` behavior with
following tests:

```
❯ docker run -it python:3.8-slim bash
root@41120dfd035e:/# python
Python 3.8.8 (default, Feb 19 2021, 18:07:06)
>>> from urllib.parse import parse_qsl
>>> parse_qsl(";a=b")
[(';a', 'b')]
>>>
```

```
❯ docker run -it python:3.8.7-slim bash
root@68e527725610:/# python
Python 3.8.7 (default, Feb  9 2021, 08:21:15)
>>> from urllib.parse import parse_qsl
>>> parse_qsl(";a=b")
[('a', 'b')]
>>>
```

(cherry picked from commit 7bd9d47)
ashb pushed a commit that referenced this pull request Apr 15, 2021
One of tests fixed in (#14710) had an usused variable - `expected_url`,
copy/paste failure. This commit fixes it and adds a condition too to
only replace url if it contains a semi-colon

(cherry picked from commit 52604a3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:webserver Webserver related Issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants