⬆️ Updates pymdown-extensions to v10 [SECURITY]#3538
⬆️ Updates pymdown-extensions to v10 [SECURITY]#3538renovate[bot] wants to merge 1 commit intomasterfrom
Conversation
@check-spelling-bot ReportUnrecognized words, please review:
Previously acknowledged words that are now absentacl activesupport adaoraul addons aeiou AFile afterall Alexey alfredxing algolia allowfullscreen Anatoliy andreyvit Ankit Anning apps appveyor arengu args ariejan arounds asciinema asdf ashmaroli attr Autobuild autocompletion autogenerated Autolink autoload autoreconf autosave awood awscli backport backtick barcamp baseurl bashrc baz bbatsov bdimcheff bellvat benbalter Beney binstubs bip bitbucket Blogger blogging bonafide Bou breadcrumbs briandoll bridgetown bridgetownrb brightbox brighterplanet buddyworks Bugfix Burela byparker cachegrind calavera callgraphs cartera cavalle CDNs cgi changefreq chango charset Chayoung chcp chdir Cheatsheet Checkoway chmod chown Chrononaut chruby cibuild cimg circleci CJK classname cloudcannon Cloudinary cloudsh CLT CODEOWNERS coderay codeslinger coffeescript colorator commandline commonmark compat compatibilize concat configyml contentblocks CORS Cov CRLFs cron crontab cruft css csv Currin CVE CWD cygwin daringfireball Dassonville datafiles datetime DCEU Debian debuggability defunkt delegators deployer deps dest Devkit devops digitalocean dirs disqus ditaa dnf doclist doctype doeorg dommmel dotfile Dousse downcase downcased duckduckgo duritong Dusseau dysinger ecf editorconfig eduardoboucas Elasticsearch elsif Emacs emails endcapture endcomment endfor endhighlight endif endraw endrender endtablerow Enumerables EOL erb errordocument Espinaco eugenebolshakov evaled exe execjs extensionpack extname exts favicon Fengyun ffi figcaption filesystem Finazzo firstimage FIXME flakey flickr fnmatch fontello forloop formcake formcarry formester formingo formkeep formspark formspree formx Forwardable frameborder freenode frontend frontmatter fsnotify ftp fullstory Gaudino gcc gcnovus gemfile gemset gemspec getform getset getsimpleform gettalong gfm ghp ghpages giraffeacademy githubcom gitignore gitlab gjtorikian globbed globbing google gotcha Goulven gridism GSo gsub gsubbing Hakiri hardcode hashbang hashmap helaili henrik heredoc heroku highlighter hilighting Hoizey hostman hostname htaccess htm htmlproofer httpd httpdocs hyperlinks Iaa ial ico icomoon iconset ified iframe Impl Inlining invokables irc ivey ize jalali jameshamann jamstackthemes jan Jax jayferd jcon jdoe jeffreytse jeffrydegrande Jekpack jekyllbot jekyllconf Jekyllers Jekyllin Jekylling jekyllized jekylllayoutconcept jekyllrb jekyllthemes jemoji jmcglone jneen johnreilly jpg jqr jruby jsonify juretta jwarby Kacper Kasberg kbd Kentico Kewin keycdn kickster Kinnula kiwifruit Kolesky konklone kontent Kotvinsky kramdown Kulig Kwokfu Lamprecht laquo lastmod launchctl launchy laurilehmijoki ldquo learnxinyminutes lexer LGTM libcurl libffi lightgray limjh linenos linkify linux liufengyun livereload localheinz localtime Locher loglevel Losslessly lovin lsi lsquo lstrip lyche macos macromates mademistakes Manmeet markdownify Maroli Marsceill maruku mathjax mathml mattr Maximiliano mchung mdash memberspace Memoize memoized memoizing mentoring mergable Mertcan mertkahyaoglu microdata mimetype mingw minibundle minifier minitest Mittal mixin mkasberg mkd mkdir mkdn mkdown mmistakes modernizr mojombo moncefbelyamani moz mreid msdn mswin MSYS mtime multiline munging Mvvm myblog mycontent mydata mydoc myimage mypage myposts myproject myrepo mysite myvalue myvar myvariable Nadjib nakanishi namespace namespaced navbar nbsp nearlyfreespeech nethack netlify netlifycms Neue nginx ngx nielsenramon nior noifniof nokogiri notextile onclick onebox oneclick onschedule openssl Optim orderofinterpretation orgs OSVDB osx packagecontrol pacman paginator pandoc pantulis params parkr parseable paspagon passthrough pathawks Pathutil paywall pdf Pelykh permalink PHP pinboard Piwigo pjhyett pkill pkpass placeholders planetjekyll plantuml plugin podcasts popen Porcel Posterous postfiles postlayout postmodern prefetching preinstalled prepends Prioritise Probot projectlist pubstorm pufuwozu pwa pwd pygments qrush Quaid rackup Rakefile razorops rbenv rdiscount rdoc rdquo realz rebund redcarpet redcloth redgreen refactor Refheap regen regex regexp remi reqs Responsify revertable rfc rfelix RHEL ridk roadmap rowspan rspec rsquo rstrip rsync rtomayko Rubo rubocop rubychan rubygem rubyinstaller rubyprof Ruparelia Rusiczki rvm ryanflorence saas samplelist samrayner sandboxed Sassc sassify schemastore Schroers Schwartzian scp scrollbar scroller scss scssify sdk SDKROOT sectore seo serverless setenv SFTP shingo shopify shortlog shoulda sieversii sigpipe simplecov Singhaniya siteleaf sitemap SITENAME Slicehost slugified slugify smartforms smartify snipcart somedir sonnym Sonomy sourced sourcemaps spam spotify ssg ssh SSL staticfiles staticman statictastic STDERR stdout Stickyposts strftime stringified Stringify stylesheet subdir subdomain subfolder subfolderitems subnav subpages subpath subpiece subsubfolderitems subthing subvalues subwidget sudo superdirectories superdirs SUSE sverrirs svn swfobject swupd symlink symlinking tablerow tada Taillandier talkyard tbody technicalpickles templating templatize Termux textilize textpattern thead therubyracer Theunissen Thornquest thoughtbot throughs Tidelift timeago timezone titleize TLS tmm tmp toc tok tomjoht toml tomo toolset toshimaru triaged triaging truncatewords tsv ttf Tudou Tumblr Tweetsert txtpen Tyborska tzinfo ubuntu uby ujh ultron undumpable unencode Unescape unescaping unicode uniq upcase uppercasing uri urlset username usr utf utils utime vanpelt Vasovi vendored vercel versioned vertycal Veyor vilcans Vishesh visualstudio vnd vohedge vps vscode vwochnik Walkthroughs wdm We'd webfont webhook webhosting webmentions webrick weekdate whitelist whitelisting wikipedia wildcards willcodeforfoo woff wordpress Workaround wsl xcode xcrun xdg Xhmikos xhtml Xiaoiver XMinutes xmlns xmlschema yajl Yarp Yashu Yastreb Youku youtube yunbox zeropadding Zlatan zlib zoneinfo zpinter Zsh zshrc zypper zzotTo accept these unrecognized words as correct (and remove the previously acknowledged and now absent words), run the following commands... in a clone of the git@github.com:AlexRogalskiy/java-patterns.git repository If you see a bunch of garbageIf it relates to a ... well-formed patternSee if there's a pattern that would match it. If not, try writing one and adding it to the Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines. Note that patterns can't match multiline strings. binary-ish stringPlease add a file path to the File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.
|
There was a problem hiding this comment.
Scan Summary
| Tool | Critical | High | Medium | Low | Status |
|---|---|---|---|---|---|
| Dependency Scan (universal) | 2 | 12 | 14 | 0 | ❌ |
| Security Audit for Infrastructure | 14 | 92 | 8 | 32 | ❌ |
| Kotlin Security Audit | 0 | 0 | 0 | 0 | ✅ |
| Kotlin Static Analysis | 0 | 0 | 0 | 0 | ✅ |
| Python Source Analyzer | 0 | 0 | 0 | 0 | ✅ |
| Secrets Audit | 0 | 4 | 0 | 0 | ❌ |
| Shell Script Analysis | 0 | 0 | 0 | 195 | ✅ |
Recommendation
Please review the findings from Code scanning alerts before approving this pull request. You can also configure the build rules or add suppressions to customize this bot 👍
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
db455d0 to
b12cec1
Compare
This PR contains the following updates:
==9.4→==10.16.1Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
GitHub Vulnerability Alerts
CVE-2023-32309
Summary
Arbitrary file read when using include file syntax.
Details
By using the syntax
--8<--"/etc/passwd"or--8<--"/proc/self/environ"the content of these files will be rendered in the generated documentation. Additionally, a path relative to a specified, allowed base path can also be used to render the content of a file outside the specified base paths:--8<-- "../../../../etc/passwd".Within the Snippets extension, there exists a
base_pathoption but the implementation is vulnerable to Directory Traversal.The vulnerable section exists in
get_snippet_path(self, path)lines 155 to 174 in snippets.py.PoC
Impact
Any readable file on the host where the plugin is executing may have its content exposed. This can impact any use of Snippets that exposes the use of Snippets to external users.
It is never recommended to use Snippets to process user-facing, dynamic content. It is designed to process known content on the backend under the control of the host, but if someone were to accidentally enable it for user-facing content, undesired information could be exposed.
Suggestion
Specified snippets should be restricted to the configured, specified base paths as a safe default. Allowing relative or absolute paths that escape the specified base paths would need to be behind a feature switch that must be opt-in and would be at the developer's own risk.
CVE-2025-68142
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.
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.captioncould be avoided until the library is updated to 10.16.1+.References
The original issue https://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. 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:
The POC was provided by @ShangzhiXu
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:Relevant PR with fix: https://github.com/facelessuser/pymdown-extensions/pull/2717
Version(s) & System Info
Release Notes
facelessuser/pymdown-extensions (pymdown-extensions)
v10.16.1: 10.6.1Compare Source
10.16.1
v10.16Compare Source
10.16
max_retriesandbackoff_retriesoptions to configure new retry logic for HTTP 429errors (Too Many Requests client error).
desired.
v10.15Compare Source
10.15.0
relaxed_headersoption which can tolerate bad content in the fenced code header. Whenenabled, code blocks with bad content in the header will likely still convert into code blocks, often respecting
the specified language.
combine_header_slugwas enabled and there was noheader.
v10.14.3Compare Source
10.14.3
v10.14.2Compare Source
10.14.2
md_in_html.v10.14.1Compare Source
10.14.1
.are handled correctly..or).v10.14Compare Source
10.14
customoption to specify tags and the assumed handling for them when automatic modeis assumed. This can also be used to override the handling for recognized tags with automatic handling.
v10.13Compare Source
10.13
,.v10.12Compare Source
10.12
pymdownx.blocks.detailsapproach.pymdownx.blocks.tabapproach.strictoption that will raise an exception if an emoji is used whose name has changed,removed, or never existed.
v10.11.2Compare Source
10.11.2
v10.11.1Compare Source
10.11.1
can cause a fence to not be parsed.
v10.11Compare Source
10.11
```lang {.class #id}.v10.10.2Compare Source
10.10.2
*em, **em,strong***and_em, __em,strong___cases.*sup, **sup,ins***.*sub, **sub,del***.v10.10.1Compare Source
10.10.1
v10.10Compare Source
10.10
xinstead oftwitter.twitteris still recognized but isnow deprecated and will be removed at a future time.
urlunparse.v10.9Compare Source
10.9
v10.8.1Compare Source
10.8.1
v10.8Compare Source
10.8
v10.7.1Compare Source
10.7.1
v10.7Compare Source
10.7
:octocat:are no longer resolved.
default_langwhich will cause code blocks with no language specifier to behighlighted with the specified default language instead of plain text. This affects indented code blocks and code
blocks defined with SuperFences.
style_plain_textcan be specified with a language string (in addition to its previousboolean requirement) to treat inline code blocks with no explicit language specifier with a specific default
language.
v10.6Compare Source
10.6
v10.5Compare Source
10.5
v10.4Compare Source
10.4
base_pathto better support interactions with MkDocs.v10.3.1Compare Source
10.3.1
v10.3Compare Source
10.3
v10.2.1Compare Source
10.2.1
v10.2Compare Source
10.2
stripnloption to configure Pygments' default handling of stripping leading andand trailing new lines from code blocks. Mainly affects fenced code blocks.
an exception.
v10.1Compare Source
v10.0.1Compare Source
10.0.1
v10.0Compare Source
10.0
base_pathpreventing snippetsrelative to the
base_pathbut not explicitly under it.restrict_base_pathcan be set toFalsefor legacybehavior.
v9.11Compare Source
9.11
v9.10Compare Source
9.10
containers for specialized parsing. A number of extensions utilizing general purpose blocks are included and are meant
to be an alternative to (and maybe one day replace): Admonitions, Details, Definition Lists, and Tabbed. Also adds a
new HTML plugin for quick wrapping of content with arbitrary HTML elements.
ids will be generated using that code ID instead of the code block count.
-and_.check_pathsis enabled, and a specified section is not found, raise an error.dedent_sectionsthat will de-indent (remove any common leadingwhitespace from every line in text) from that block of text.
v9.9.2Compare Source
9.9.2
--. Relax Snippets syntax such that-8<-(single-) are allowed.v9.9.1Compare Source
9.9.1
v9.9Compare Source
9.9
*or_surrounded by whitespace are not considered as a token.^^nested between^would be handled in an unexpected way.^surrounded by whitespace are not considered as a token.~~nested between~would be handled in an unexpected way.~surrounded by whitespace are not considered a token.=surrounded by whitespace are not considered a token.v9.8Compare Source
9.8
**nested between*would be handled in an unexpected way.v9.7Compare Source
9.7
v9.6Compare Source
9.6
guess_langoption (e.g.
blockvsinline).;.v9.5Compare Source
9.5
InlineHiliteException.check_pathsis enabled), all other errorswill be propagated up.
SnippetMissingErrorinstead ofIOError.Configuration
📅 Schedule: Branch creation - "" in timezone Europe/Moscow, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ 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.
This PR was generated by Mend Renovate. View the repository job log.