[Aikido] Fix 33 critical issues in matplotlib, streamlit, transformers and 10 more#15
Open
aikido-autofix[bot] wants to merge 1 commit intomainfrom
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upgrade dependencies to fix critical RCE vulnerabilities in fontTools arbitrary file write, matplotlib code execution via eval(), and urllib3 decompression bomb DoS attacks.
✅ Based on the codebase analysis, the package upgrades do not introduce breaking changes that affect this codebase:
Python Version Compatibility: The project requires
python = ">=3.10,<3.14"inpyproject.toml. The following packages drop Python 3.8 or 3.9 support, but this does not affect the codebase since it already requires Python 3.10+:fonttools (drops 3.8, requires 3.9+)
pygments (drops 3.8)
streamlit (drops 3.9 in 1.51.0)
filelock (drops 3.9 in 3.20.0)
requests (drops 3.9 in 2.33.0)
matplotlib: The codebase uses
matplotlib.colormaps.get_cmap("tab20")indemo/app.py:462, which is unaffected by the cycler eval removal or pyparsing version bump.streamlit: The codebase uses
st.plotly_chart()with explicituse_container_width=Trueparameter indemo/app.py:1009, and only usesst.write()without kwargs. The deprecated features (st.bokeh_chart,st.experimental_user,experimental_query_params,add_rows, kwargs inst.vega_lite_chart) are not used in the codebase.torch: The codebase imports torch in
src/lex_graph/reference_finders/local_llm.pybut only uses basic functionality (torch.dtype,torch.float16) that is unaffected by the breaking changes related to tensor operations, ONNX export, or inductor config variables.requests: The codebase uses
requests.get()and accessesresponse.headers["Content-Location"]insrc/lex_graph/graph.py:156, which uses the standardrequestslibrary (noturllib3directly), so the urllib3 breaking changes do not apply.urllib3: No direct usage of
urllib3.response.HTTPResponse,ContentDecoder, or deprecated methods likegetheaders()was found in the codebase.fonttools: No usage of fonttools-specific features affected by the breaking changes was found in the codebase.
All breaking changes by upgrading matplotlib from version 3.10.0 to 3.10.9 (CHANGELOG)
pyparsinghas been updated to version 3.0All breaking changes by upgrading requests from version 2.32.3 to 2.33.1 (CHANGELOG)
All breaking changes by upgrading urllib3 from version 2.3.0 to 2.6.3 (CHANGELOG)
Content-Encodingheader is now limited to 5, which may cause previously working requests with more than 5 chained encodings to fail.urllib3.response.ContentDecoderhas changed, requiring updates to custom decompressors.HTTPResponse.getheaders()method in favor ofHTTPResponse.headers.HTTPResponse.getheader(name, default)method in favor ofHTTPResponse.headers.get(name, default).All breaking changes by upgrading pygments from version 2.19.1 to 2.20.0 (CHANGELOG)
✅ 33 CVEs resolved by this upgrade, including 1 critical 🚨 CVE
This PR will resolve the following CVEs:
validate_cycler()allows arbitrary code execution through unsafeeval()parsing of theaxes.prop_cyclercParam string from configuration files or styles. Additionally, external tools (LaTeX, dvips, Ghostscript) in the PGF, LaTeX, and PostScript pipelines were susceptible to shell escape attacks.preprocess_string()function in the testing utilities module contains a Regular Expression Denial of Service (ReDoS) vulnerability with nested quantifiers that causes exponential backtracking. An attacker can exploit this with specially crafted input to trigger high CPU usage and application downtime.remove_language_code()method allows attackers to cause excessive CPU consumption through crafted malformed language code patterns, resulting in denial of service.get_imports()function allows attackers to cause excessive CPU consumption through crafted input, leading to resource exhaustion and service disruption.token2json()method allows attackers to cause excessive CPU consumption through crafted input strings, leading to denial of service and resource exhaustion.normalize_numbers()method allows attackers to cause excessive CPU consumption through crafted numeric input strings, leading to service disruption and resource exhaustion in text-to-speech and normalization tasks.extract_zipped_paths()utility function uses predictable filenames when extracting zip archives to the temp directory, allowing local attackers to pre-create malicious files that get loaded instead of legitimate ones, resulting in arbitrary code execution.domain,path, andsamesitecookie arguments allows semicolons, enabling attackers to inject arbitrary cookie attributes. This could lead to session hijacking or other cookie-based attacks.strings.findfunction due to incorrect memory allocation calculations, leading to out-of-bounds access. This can cause application crashes or potentially enable arbitrary code execution.