Commit adc5bb1
authored
chore(deps): update dependency pymdown-extensions to v10.16.1 [security] (#25)
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[pymdown-extensions](https://redirect.github.com/facelessuser/pymdown-extensions)
| `10.13` → `10.16.1` |

|

|
### GitHub Vulnerability Alerts
####
[CVE-2025-68142](https://redirect.github.com/facelessuser/pymdown-extensions/security/advisories/GHSA-r6h4-mm7h-8pmq)
### Impact
This issue describes a ReDOS bug found within the figure caption
extension (`pymdownx.blocks.caption` ).
In systems that take unchecked user content, this could cause long hangs
when processing the data if a malicious payload was crafted.
### Patches
This issue is patched in Release
[10.16.1](https://pypi.org/project/pymdown-extensions/10.16.1/).
### Workarounds
Some possible workarounds
If users are concerned about this vulnerability and process unknown user
content without timeouts or other safeguards in place to prevent really
large, malicious content being aimed at systems, the use of
`pymdownx.blocks.caption` could be avoided until the library is updated
to 10.16.1+.
### References
The original issue
[https://github.com/facelessuser/pymdown-extensions/issues/2716](https://redirect.github.com/facelessuser/pymdown-extensions/issues/2716).
### Description
The original issue came through PyMdown Extensions' normal issue tracker
instead of the typical security flow:
[https://github.com/facelessuser/pymdown-extensions/issues/2716](https://redirect.github.com/facelessuser/pymdown-extensions/issues/2716).
Because this came through the normal issue flow, it was handled as a
normal issue. In the future, PyMdown Extensions will ensure such issues,
even if prematurely made public through the normal issue flow, are
redirected through the typical security process.
The regular expression pattern in question is as follows:
```py
RE_FIG_NUM = re.compile(r'^(\^)?([1-9][0-9]*(?:.[1-9][0-9]*)*)(?= |$)')
```
The POC was provided by @​ShangzhiXu
```py
import re
import time
regex_pattern = re.compile(r'^(\^)?([1-9][0-9]*(?:.[1-9][0-9]*)*)(?= |$)')
for i in range(50, 500, 50):
long_string = '1' * i + 'a'
start_time = time.time()
match = re.match(regex_pattern, long_string)
end_time = time.time()
print(f"long_string execution time: {end_time - start_time:.6f} s")
```
The issue with the above pattern is that `.` was used, which accepts any
character when we meant to use `\.`. The fix was to update the pattern
to:
```py
RE_FIG_NUM = re.compile(r'^(\^)?([1-9][0-9]*(?:\.[1-9][0-9]*)*)(?= |$)')
```
Relevant PR with fix:
[https://github.com/facelessuser/pymdown-extensions/pull/2717](https://redirect.github.com/facelessuser/pymdown-extensions/pull/2717)
### Version(s) & System Info
- Operating System: Any
- Python Version: Any
---
### Release Notes
<details>
<summary>facelessuser/pymdown-extensions (pymdown-extensions)</summary>
###
[`v10.16.1`](https://redirect.github.com/facelessuser/pymdown-extensions/releases/tag/10.16.1):
10.6.1
[Compare
Source](https://redirect.github.com/facelessuser/pymdown-extensions/compare/10.16...10.16.1)
#### 10.16.1
- **FIX**: Inefficient regular expression pattern for figure caption
numbers.
###
[`v10.16`](https://redirect.github.com/facelessuser/pymdown-extensions/releases/tag/10.16)
[Compare
Source](https://redirect.github.com/facelessuser/pymdown-extensions/compare/10.15...10.16)
#### 10.16
- **NEW**: Add early support for Python 3.14.
- **NEW**: Drop support for Python 3.8.
- **NEW**: Snippets: Added `max_retries` and `backoff_retries` options
to configure new retry logic for HTTP 429
errors (Too Many Requests client error).
- **NEW**: Caption: Prefix templates are now preserved exactly as
specified allowing the insertion of HTML tags if
desired.
- **FIX**: Caption: Fix issue where manual numbers in auto were not
respected appropriately.
###
[`v10.15`](https://redirect.github.com/facelessuser/pymdown-extensions/releases/tag/10.15)
[Compare
Source](https://redirect.github.com/facelessuser/pymdown-extensions/compare/10.14.3...10.15)
#### 10.15.0
- **NEW**: SuperFences: Add `relaxed_headers` option which can tolerate
bad content in the fenced code header. When
enabled, code blocks with bad content in the header will likely still
convert into code blocks, often respecting
the specified language.
- **NEW**: Add type hints to the Blocks interface and a few additional
files.
- **FIX**: Blocks: Fix some corner cases of nested blocks with lists.
- **FIX**: Tab and Tabbed: Fix a case where tabs could fail if
`combine_header_slug` was enabled and there was no
header.
###
[`v10.14.3`](https://redirect.github.com/facelessuser/pymdown-extensions/releases/tag/10.14.3)
[Compare
Source](https://redirect.github.com/facelessuser/pymdown-extensions/compare/10.14.2...10.14.3)
#### 10.14.3
- **FIX**: Blocks: An empty, raw block type should not cause an error.
###
[`v10.14.2`](https://redirect.github.com/facelessuser/pymdown-extensions/releases/tag/10.14.2)
[Compare
Source](https://redirect.github.com/facelessuser/pymdown-extensions/compare/10.14.1...10.14.2)
#### 10.14.2
- **FIX**: Blocks: Fix some corner cases with `md_in_html`.
###
[`v10.14.1`](https://redirect.github.com/facelessuser/pymdown-extensions/releases/tag/10.14.1)
[Compare
Source](https://redirect.github.com/facelessuser/pymdown-extensions/compare/10.14...10.14.1)
#### 10.14.1
- **FIX**: MagicLink: Ensure that repo names that start with `.` are
handled correctly.
- **FIX**: FancyLists: Fix case were lists could be falsely created when
a line started with `.` or `)`.
###
[`v10.14`](https://redirect.github.com/facelessuser/pymdown-extensions/releases/tag/10.14)
[Compare
Source](https://redirect.github.com/facelessuser/pymdown-extensions/compare/10.13...10.14)
#### 10.14
- **NEW**: Blocks.HTML: Add new `custom` option to specify tags and the
assumed handling for them when automatic mode
is assumed. This can also be used to override the handling for
recognized tags with automatic handling.
- **FIX**: Fix tests to pass with Pygments 2.19+.
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no
schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/NiklasRosenstein/python-github-bot-api).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NS4xIiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6ImRldmVsb3AiLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>1 parent 93128b7 commit adc5bb1
1 file changed
Lines changed: 326 additions & 410 deletions
0 commit comments