You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Security: Remediate 5 CVEs in Python Dependencies #544
After analysis, the approach needs to change from direct pip upgrades to a proper Ansible-based patch management system similar to oVirt's architecture.
Why This Matters:
All services run in virtual environments across 5 VMs
Direct pip upgrades could disrupt running services
Need rolling updates with health checks
Future expansion (new workers, services) needs standardized provisioning
New Approach:
Ansible playbooks for dependency patching (non-disruptive)
Rolling update strategy - one VM at a time with health verification
Standardized provisioning for adding new workers/services (oVirt-style)
Created #682 for implementing the Ansible-based rolling update system. This provides:
Non-disruptive updates - One VM at a time with health verification
Automatic rollback - Restore from backup on failure
oVirt-style patterns - Maintenance mode, drain, health checks
Future-proof - Reusable for all dependency updates
Blocking Dependency
This issue is now blocked by #682 - once the Ansible rolling update system is in place, the actual CVE remediation can be executed safely across all VMs.
Activity
mrveiss commentedon Dec 31, 2025
Starting work on this security issue. Will update dependencies to fix the 5 CVEs identified by pip-audit.
Packages to update:
ansible10.7.0 → 12.2.0+ (CVE-2025-14010)authlib1.6.1 → 1.6.5+ (CVE-2025-59420, CVE-2025-61920, CVE-2025-62706)filelock3.16.1 → 3.20.1+ (CVE-2025-68146)keras3.11.0 → 3.11.3+ (CVE-2025-9905)mrveiss commentedon Dec 31, 2025
Scope Change: Infrastructure-Based Dependency Management
After analysis, the approach needs to change from direct pip upgrades to a proper Ansible-based patch management system similar to oVirt's architecture.
Why This Matters:
New Approach:
Requirements Files Updated:
config/requirements.txt- starlette, pypdf, markdownify versions bumpedconfig/requirements-ci.txt- same updatesrequirements.txt- pypdf version bumpedrequirements-ci.txt- same updatesNext Steps:
Creating new issue for Ansible infrastructure management system, then linking back to complete this CVE remediation properly.
mrveiss commentedon Dec 31, 2025
Progress Update
Requirements Files Updated ✅
The following requirements files have been updated with security fixes:
config/requirements.txt- starlette ≥0.49.1, pypdf ≥6.4.0, markdownify ≥0.14.1config/requirements-ci.txt- same updatesrequirements.txt- pypdf ≥6.4.0requirements-ci.txt- same updatesInfrastructure Issue Created
Created #682 for implementing the Ansible-based rolling update system. This provides:
Blocking Dependency
This issue is now blocked by #682 - once the Ansible rolling update system is in place, the actual CVE remediation can be executed safely across all VMs.
Actual CVEs in venv (pip-audit results)
Note:
ansibleandauthlibfrom the original issue are NOT installed in the AutoBot venv - they were detected in the system Python.mrveiss commentedon Dec 31, 2025
Infrastructure Ready ✅
The Ansible rolling update system (#682) has been implemented and committed (
b80ff577).Requirements Files Updated
config/requirements.txt- starlette ≥0.49.1, pypdf ≥6.4.0, markdownify ≥0.14.1config/requirements-ci.txt- Same updatesrequirements.txt,requirements-ci.txt- pypdf ≥6.4.0Next Step: Apply Updates
Once ready to remediate the CVEs, run:
CVEs to be Fixed
The rolling update system will patch:
filelock→ 3.20.1+ (GHSA-w853-jp5j-5j7f)keras→ 3.12.0+ (4 CVEs)langchain-core→ 0.3.81+ (2 CVEs)markdownify→ 0.14.1+ (GHSA-7mpr-5m44-h73r)marshmallow→ 3.26.2+ (GHSA-428g-f7cq-pgp5)pypdf→ 6.4.0+ (4 CVEs)starlette→ 0.49.1+ (GHSA-7f5h-v6xp-fcq8)urllib3→ 2.6.0+ (2 CVEs)werkzeug→ 3.1.4+ (GHSA-hgf8-39gv-g3f2)requests→ 2.32.4+ (2 CVEs)Rollback Available
If any issues occur during patching:
This issue remains open until the actual patching is executed and verified with
pip-audit.feat(security): Ansible rolling update system for CVE remediation (#544…
mrveiss commentedon Dec 31, 2025
Starting GUI-Based Update Implementation
Based on discussion, extending this issue to include GUI-triggerable package updates via Ansible (similar to oVirt approach).
Implementation Plan:
ansible/playbooks/update-packages.ymlto update Python packages with CVE fixesbackend/tasks/deployment_tasks.py- async task for running update playbookbackend/api/settings.py- endpoints for triggering and monitoring updatesTarget Packages (from CVE analysis):
Work starting now...
mrveiss commentedon Dec 31, 2025
Implementation Complete ✅
GUI-Based System Updates Feature (oVirt-style)
Successfully implemented GUI-triggerable package updates via Ansible, similar to oVirt's approach.
Changes Made:
Backend - Celery Tasks (
backend/tasks/deployment_tasks.py):run_system_updatetask for Python deps and system packagescheck_available_updatestask for pip-audit + apt checkBackend - API Endpoints (
backend/api/settings.py):POST /api/settings/updates/run- Trigger system updatesGET /api/settings/updates/status/{task_id}- Poll task progressPOST /api/settings/updates/check- Check for available updatesGET /api/settings/updates/status- Get last update infoFrontend - Settings UI (
UserManagementSettings.vue):Existing Ansible Playbooks Utilized:
patch-dependencies.yml- Rolling Python dependency updatespatch-system-packages.yml- System package updatesdependency_patchingrole with backup/rollback supportCode Review Fixes Applied:
list | Noneinstead oflist = None)pollUpdateCheckStatusrunSystemUpdateLocation in UI:
Settings → User Management → System Updates (Admin only)
Features:
feat(settings): Add settings subroutes and Infrastructure tab (#687, #…