Replies: 6 comments
-
Hello @davidism - short intro here, I am a maintainer ( @molcay is working with us (and Google Security team) on applying security fixes he mentioned above to Werkzeug 2.2.3 and we hope you will be eventually open to releasing 2.2.4 version with those patches applied. And we really hope you will be able to help with that (just a bit) together maybe wiht @psrok1 to explain reproducibility of the issue on 2.2.3 because @molcay has a bit of a problem with that repro. Now... Why we would like to do it and why we have this really kind request to get 2.2.4 out with the fixes? The main reason is because we have more and more questions from the users of Airflow 2 about those two vulnerabilitites, and due to a number of connected dependencies (Flask Application Builder, Connexion, Flask login etc.) that we use in Airflow 2 and cannot upgrade (it's too complex). Those dependencies of ours (particularly Connexion 2 [1]) have hard-coded Werkzeug < 2.3 dependency and that prevents us - and any other connexion 2 users to upgrade Werkzeug to 2.3. We've been trying a LOT to migrate connexion to a new version - but those attempts were not successful - [2] - mostly due to Connexion 2 changing completely their architecture (moving from WSGI to ASGI). In Airflow 3 we are moving to fast_api and dropping connexion altogether, but we would love it if we can help our users to get rid of the vulnerabilities reported in Werkzeug. We belive Airflow is not really affected, but do not currently have a good way of signalling it to our users (there is a lot of discussion about VEX in the security world - vulnerability exchange and we will likely be one of the first to use it, but it's still many months if not years ahead). Together with Google Security team and molcay we analysed the options, and it seems that if we can get those patches by @molcay approved and merged and 2.3.4 Werkzeug released, that seems like the simplest way to handle the issue - and also it has this really nice property that many of your users might have similar issue. Werkzeug is very popular through a number of other dependencies - transitively, and I believe we are not the only ones with that issue. Would it be possible to get a little of your help here @davidism and @psrok1 ? We can make our ecosystem a little bit safer together. Also you might be interested that this is part of a bigger initiative we have - called Airflow Beach Cleaning [3] where we work together with Alpha-Omega fund on eventually reviewing and helping our dependencies in making their security rock-solid. It would be great to get you on board of the "Beach Cleaning" excersise. [1] https://pypi.org/project/connexion/2.14.2/#files : |
Beta Was this translation helpful? Give feedback.
This comment has been minimized.
This comment has been minimized.
-
Indeed it would be great to get some help here! |
Beta Was this translation helpful? Give feedback.
-
Hi, The PR is here: molcay#1 The testing environment has
I executed the test manually and also the automated way (via simple Python script). Now, I have a working version ( @potiuk, I also tested the new version on Airflow 2 UI (in the add/edit connection page and also variables page: Since I checked the changes on my end; now I just need an approval that my testing method is enough before creating a PR to this repository. If someone can have a look from the community side and guide us; it will be very much appreciated 🙏 |
Beta Was this translation helpful? Give feedback.
-
We would greatly apprectiate @davidism @psrok1 if we could get feedback on this one. This would be extremely helpful for the Airflow community to proceed with the proposal of @molcay here - if you could help with that? Is there anything we can do to help with the release or support you with it? i understand we are all busy maintainers, and it drags you out from other things, but maybe there is a way we can lessen the burden for releasing the older Werkzeug version? |
Beta Was this translation helpful? Give feedback.
-
@potiuk reached out to me on Discord, so I'm going to post what I wrote there, with some edits: I'm sorry, but 2.2 is too old to be backporting to. You can find our version support policy here: https://palletsprojects.com/versions
It's not just the code work, it's also merging it forward to 2.3, and the the entire publishing workflow. Going back so many versions and years is not trivial. This policy is to set boundaries on my limited time and attention across so many projects. (I do appreciate that you put in the work of creating the patches though.) Is there really no way to put this effort towards updating dependencies instead? It looks like both Flask-AppBuilder and Connexion 2 and 3 all support Werkzeug > 3. We then both noticed that the support in Connexion 2 had just been merged and released 3 days ago. That's probably the way forward. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi all,
Background
Currently, I am trying to apply this patch to have vuln-free dependency for a project. The project currently has a complex dependency tree and we cannot upgrade the
werkzeug
package due to theconnexion
package. So we are evaluating our options. One of the options is to apply these patches to thewerkzeug v2.2.3
. Before the next step; we need to test the changes and validate that the changes are working fine.Goal
I am currently trying to create a patched version of the
werkzeug v2.2.3
.I know the following CVEs found before;
Here is the list of advisories for the CVEs:
I applied the changes that were implemented to fix these vulnerabilities. I wanted to test the vuln. fixed or not. To be able to test I try to read the advisories and come up with some test scenarios with synthetic environments.
However, I could not reproduce the issue while I was testing the
werkzeug v2.2.3
.I wonder if someone will give me some ideas to reproduce this problem.
As far as I saw from the advisory page; @psrok1 has the credit for this advisory. I know, it is a bit old but do you remember, by any chance how you reproduced in the first place.
Beta Was this translation helpful? Give feedback.
All reactions