/opt/imunify360/venv/lib/python3.11/site-packages/imav/migrations
NameSizeModeActions
__pycache__/-0755rm
000_noop_migration.py9470644editdlrm
001_fix_scan_unserialization.py29230644editdlrm
002_convert_serialized_scans.py25440644editdlrm
003_add_new_fields_to_malware_history.py13230644editdlrm
003_whmapi1_set_importance_imav.py16810644editdlrm
004_add_malwarehit_owner.py11270644editdlrm
004_patchman_client.py17470644editdlrm
004_plesk_configs.py64510644editdlrm
004_plesk_eula.py23860644editdlrm
005_plesk_cleanup_storage.py41110644editdlrm
005_populate_malwarehit_owner.py11420644editdlrm
006_add_malwarehit_snippet.py11370644editdlrm
007_add_malwarehistory_fileuser.py11570644editdlrm
007_revisium_ignore_list.py26600644editdlrm
008_populate_malwarehistory_foleuser.py11850644editdlrm
008_subscription_permissions.py33710644editdlrm
009_revisium_scan_history.py92080644editdlrm
010_add_malwarehistory_scan_id.py11590644editdlrm
011_add_malwarehistory_index.py15270644editdlrm
012_add_rescan_outdated_scan_type.py14320644editdlrm
013_add_malware_ctime.py12240644editdlrm
014_add_imunify_security.py9860644editdlrm
015_manually_deleted_at_field_added.py9890644editdlrm
016_add_vulnerability_hit_table.py25390644editdlrm
017_add_imunify_patch_subscriptions_table.py13250644editdlrm
017_add_version_field.py9880644editdlrm
018_delete_suspicious_hits.py9770644editdlrm
019_add_malware_history_signature_id_field.py11690644editdlrm
020_add_default_plesk_settings_av.py17840644editdlrm
021_remove_cron_scan_file.py10910644editdlrm
022_scan_queue_to_json.py16120644editdlrm
023_create_mrs_upload_queue.py18320644editdlrm
024_create_mrs_queue_counters_and_meta.py13320644editdlrm
__init__.py00644editdlrm
Edit: /opt/imunify360/venv/lib/python3.11/site-packages/imav/migrations/022_scan_queue_to_json.py (1612B)
""" This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program.  If not, see . Copyright © 2019 Cloud Linux Software Inc. This software is also available under ImunifyAV commercial license, see One-shot upgrade migration: drop any legacy non-JSON scan queue file. The runtime reads JSON only; migration 002 already normalized the on-disk objects to plain dicts. """ import logging from pathlib import Path logger = logging.getLogger(__name__) SCANS_PATH = Path("/var/imunify360/aibolit/scans.pickle") def _looks_like_json(raw: bytes) -> bool: head = raw.lstrip()[:1] return head in (b"[", b"{") def migrate(migrator, *_, fake=False, **__): if fake or not SCANS_PATH.exists(): return if _looks_like_json(SCANS_PATH.read_bytes()): return # Drop, don't pickle-load: deserializing this file is the RCE we remove. logger.warning("Removing legacy non-JSON scans file %s", SCANS_PATH) SCANS_PATH.unlink(missing_ok=True) def rollback(migrator, *_, fake=False, **__): pass