This release includes 1 security fix for security teams reviewing exposed deployments.
Topics
+14 more
Affected surfaces
Summary
AI summaryFixing GHSA-vwgh-2hvh-4xm5 — substring match vulnerability and watch.link API change to string.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Security | Medium |
Watch GET history snapshot now returns text/plain mimetype to prevent accidental execution Watch GET history snapshot now returns text/plain mimetype to prevent accidental execution Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Security | Medium |
SSRF guard added for LLM `api_base` setting in UI SSRF guard added for LLM `api_base` setting in UI Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Feature | Medium |
Added self-hosted OpenAI-compatible endpoint support (vLLM, LM Studio, llama.cpp) Added self-hosted OpenAI-compatible endpoint support (vLLM, LM Studio, llama.cpp) Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Feature | Medium |
UI tweaks for LiteLLM configuration in LLM integration UI tweaks for LiteLLM configuration in LLM integration Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Feature | Medium |
Make LLM status sticky in UI Make LLM status sticky in UI Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Feature | Medium |
Added restock config to API /v1/watch/ JSON output Added restock config to API /v1/watch/ JSON output Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Feature | Medium |
Notifications include extra check for system default Notifications include extra check for system default Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Feature | Medium |
Added support for watch API private/internal variables Added support for watch API private/internal variables Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Feature | Medium |
i18n: Added dennis .pot/.po lint support i18n: Added dennis .pot/.po lint support Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Feature | Medium |
Text filters process subtractive_selectors first Text filters process subtractive_selectors first Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Feature | Medium |
Czech l12n catalog sync fixed Czech l12n catalog sync fixed Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
Notifications now escape only diff variables before Jinja2 rendering Notifications now escape only diff variables before Jinja2 rendering Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Bugfix | Medium |
Watch.link enforced as string, not tuple Watch.link enforced as string, not tuple Source: granite4.1:8b-q6_K@2026-05-19 Confidence: high |
— |
| Bugfix | Medium |
Fixed GHSA-vwgh-2hvh-4xm5 substring match issue in shared_diff_access Fixed GHSA-vwgh-2hvh-4xm5 substring match issue in shared_diff_access Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
Fixed broken HTML tags and enforced dennis lint warnings in CI for i18n Fixed broken HTML tags and enforced dennis lint warnings in CI for i18n Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
Ignore text runs before 'extract text' in Text Filters Ignore text runs before 'extract text' in Text Filters Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Bugfix | Medium |
LLM ollama and related tweaks fixed LLM ollama and related tweaks fixed Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Refactor | Medium |
Improved LiteLLM dependencies handling Improved LiteLLM dependencies handling Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
| Refactor | Medium |
Docker changes: INSTALLED_MARKER kept in /datastore, package installs no longer persistent Docker changes: INSTALLED_MARKER kept in /datastore, package installs no longer persistent Source: granite4.1:8b-q6_K@2026-05-19 Confidence: low |
— |
Full changelog
What's Changed
- i18n: Ruff INT (flake8-gettext) by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4096
- UI - AI/LLM - "Summary" button should set last viewed by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4095
- Improve LiteLLM deps #4093 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4102
- i18n: Add dennis .pot/.po lint by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4097
- API - watch.link was accidently a tuple, enforcing string by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4104
- API - Add restock config to API /v1/watch/ json output #4099 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4103
- i18n: Enforce dennis lint warnings in CI by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4105
- i18n: Clear pre-existing dennis warnings in
messages.potby @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4112 - i18n: Fix broken HTML tags and enforce dennis lint warnings in CI by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4116
- Notifications - extra check for system default by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4122
- Notifications - Escape only the diff variables before Jinja2 renders them into the template ( Stop breaking custom HTML for plaintext pages on HTML notifications) #4121 by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4123
- Fixing GHSA-vwgh-2hvh-4xm5 — substring match in the shared_diff_access by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4130
- Bumping tests by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4131
- LLM - Self-hosted OpenAI-compatible endpoint support (vLLM, LM Studio, llama.cpp) — refs #3204 by @tekgnosis-net in https://github.com/dgtlmoon/changedetection.io/pull/4117
- LLM integration - LiteLLM config - UI tweaks by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4134
- UI - Make LLM status sticky by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4135
- LLM - Fixing summary cache miss-hit by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4136
- Text filters - Process subtractive_selectors first by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4142
- API - Better support for watch API private/internal vars by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4144
- Text filters - Ignore text should run before 'extract text' by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4143
- Fix/pr 4110 czech l12n catalog sync by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4145
- Docker - INSTALLED_MARKER is kept in /datastore but package installs are not persistent (Dont use custom marker file, rely on pip instead) by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4147
- Fix/llm ollama etc tweaks by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4148
- UI - LLM - SSRF guard for the LLM
api_basesetting by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4157 - API Security - Watch GET history snapshot - Should return
text/plainmimetype so it cant be accidently executed in the browser by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4158
New Contributors
- @tekgnosis-net made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4117
Full Changelog: https://github.com/dgtlmoon/changedetection.io/compare/0.55.3...0.55.4
Breaking Changes
- API change: watch.link now enforces a string instead of allowing a tuple
Security Fixes
- GHSA-vwgh-2hvh-4xm5 — fixed substring match vulnerability in shared_diff_access
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About changedetection.io
Best and simplest tool for website change detection, web page monitoring, and website change alerts. Perfect for tracking content changes, price drops, restock alerts, and website defacement monitoring—all for free or enjoy our SaaS plan!
Related context
Related tools
Beta — feedback welcome: [email protected]