From 2b08dd050e7685ee2a14fdbb454affab94129eae Mon Sep 17 00:00:00 2001 From: Ajin Abraham Date: Sun, 25 Jan 2026 22:33:34 -0800 Subject: [PATCH] [SECURITY] Security Update + Dependency Bump (#2584) * Bump Dependencies * Fix a Stored XSS: GHSA-8hf7-h89p-3pqj * Remove all | safe in templates and HTML from Python * Add permissions to Github Actions --- .github/SECURITY.md | 3 +- .github/workflows/auto-comment.yml | 4 + .github/workflows/codeql-analysis.yml | 3 + .github/workflows/docker-latest.yml | 3 + .github/workflows/docker-release.yml | 3 + .github/workflows/docker-test.yml | 3 + .github/workflows/mobsf-test.yml | 3 + .github/workflows/python-publish.yml | 3 + mobsf/MobSF/init.py | 2 +- .../views/android/kb/android_manifest_desc.py | 172 ++++---- .../views/android/manifest_analysis.py | 15 + mobsf/templates/pdf/android_report.html | 2 +- .../android_binary_analysis.html | 2 +- .../android_source_analysis.html | 2 +- mobsf/templates/static_analysis/compare.html | 6 +- .../windows_binary_analysis.html | 2 +- poetry.lock | 382 ++++++------------ pyproject.toml | 2 +- 18 files changed, 258 insertions(+), 354 deletions(-) diff --git a/.github/SECURITY.md b/.github/SECURITY.md index d291a7c4..40a97d47 100644 --- a/.github/SECURITY.md +++ b/.github/SECURITY.md @@ -4,12 +4,13 @@ Keeping MobSF updated to the latest version is essential for ensuring security a ## Reporting a Vulnerability -Please report all security issues [here](https://github.com/MobSF/Mobile-Security-Framework-MobSF/security/advisories/new) or email ajin25(gmail). We believe in coordinated and responsible disclosure. +Please report all security issues [here](https://github.com/MobSF/Mobile-Security-Framework-MobSF/security/advisories/new). We believe in coordinated and responsible disclosure. ## Past Security Issues | Vulnerability | Affected Versions | | ------- | ------------------ | +| [Stored XSS via Manifest Analysis - Dialer Code Host Field](https://github.com/MobSF/Mobile-Security-Framework-MobSF/security/advisories/GHSA-8hf7-h89p-3pqj) | `<=4.4.4` | | [Arbitrary File Write (AR-Slip) via Absolute Path in .a Extraction](https://github.com/MobSF/Mobile-Security-Framework-MobSF/security/advisories/GHSA-9gh8-9r95-3fc3) | `<=4.4.0` | | [Path Traversal in GET /download/`` using absolute filenames in MobSF data directory)](https://github.com/MobSF/Mobile-Security-Framework-MobSF/security/advisories/GHSA-ccc3-fvfx-mw3v) | `<=4.4.0` | | [Zip bomb Denial of Service (DoS) via Resource Exhaustion (Disk Space)](https://github.com/MobSF/Mobile-Security-Framework-MobSF/security/advisories/GHSA-c5vg-26p8-q8cr) | `<=4.3.2` | diff --git a/.github/workflows/auto-comment.yml b/.github/workflows/auto-comment.yml index 03abaed6..253f88fb 100644 --- a/.github/workflows/auto-comment.yml +++ b/.github/workflows/auto-comment.yml @@ -2,6 +2,10 @@ name: Auto Comment on: [issues, pull_request] +permissions: + issues: write + pull-requests: write + jobs: run: runs-on: ubuntu-latest diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 94135070..ea8746df 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -19,6 +19,9 @@ jobs: # required to fetch internal or private CodeQL packs packages: read + # required for commenting on pull requests + pull-requests: write + # only required for workflows in private repositories actions: read contents: read diff --git a/.github/workflows/docker-latest.yml b/.github/workflows/docker-latest.yml index 6a4de322..3419f86e 100644 --- a/.github/workflows/docker-latest.yml +++ b/.github/workflows/docker-latest.yml @@ -5,6 +5,9 @@ on: branches: - master +permissions: + contents: read + jobs: buildx: runs-on: ubuntu-latest diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml index 7e68bfd9..e6a15c87 100644 --- a/.github/workflows/docker-release.yml +++ b/.github/workflows/docker-release.yml @@ -4,6 +4,9 @@ on: release: types: [created] +permissions: + contents: read + jobs: buildx: runs-on: ubuntu-latest diff --git a/.github/workflows/docker-test.yml b/.github/workflows/docker-test.yml index fd63d2c0..8b3beba0 100644 --- a/.github/workflows/docker-test.yml +++ b/.github/workflows/docker-test.yml @@ -4,6 +4,9 @@ on: pull_request: branches: [ master ] +permissions: + contents: read + jobs: buildx: runs-on: ubuntu-latest diff --git a/.github/workflows/mobsf-test.yml b/.github/workflows/mobsf-test.yml index dc2fc65f..4e0d4840 100644 --- a/.github/workflows/mobsf-test.yml +++ b/.github/workflows/mobsf-test.yml @@ -6,6 +6,9 @@ on: pull_request: branches: [ master ] +permissions: + contents: read + env: MOBSF_DISABLE_AUTHENTICATION: "1" diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index 4d530fab..08a364b7 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -4,6 +4,9 @@ on: release: types: [created] +permissions: + contents: read + jobs: deploy: diff --git a/mobsf/MobSF/init.py b/mobsf/MobSF/init.py index 7626f4ba..1d282c33 100644 --- a/mobsf/MobSF/init.py +++ b/mobsf/MobSF/init.py @@ -18,7 +18,7 @@ from mobsf.install.windows.setup import windows_config_local logger = logging.getLogger(__name__) -VERSION = '4.4.4' +VERSION = '4.4.5' BANNER = r""" __ __ _ ____ _____ _ _ _ _ | \/ | ___ | |__/ ___|| ___|_ _| || | | || | diff --git a/mobsf/StaticAnalyzer/views/android/kb/android_manifest_desc.py b/mobsf/StaticAnalyzer/views/android/kb/android_manifest_desc.py index b3ab34a2..97228da6 100644 --- a/mobsf/StaticAnalyzer/views/android/kb/android_manifest_desc.py +++ b/mobsf/StaticAnalyzer/views/android/kb/android_manifest_desc.py @@ -1,7 +1,7 @@ MANIFEST_DESC = { 'well_known_assetlinks': { 'title': ('App Link assetlinks.json file not found' - '
[android:name=%s]
[android:host=%s]'), + '[android:name=%s][android:host=%s]'), 'level': 'high', 'description': ('App Link asset verification URL (%s) not found or ' 'configured incorrectly. (Status Code: %s). ' @@ -22,7 +22,7 @@ MANIFEST_DESC = { }, 'clear_text_traffic': { 'title': ('Clear text traffic is Enabled For App' - '
[android:usesCleartextTraffic=true]'), + '[android:usesCleartextTraffic=true]'), 'level': 'high', 'description': ('The app intends to use cleartext network traffic,' ' such as cleartext HTTP, FTP stacks, DownloadManager,' @@ -38,7 +38,7 @@ MANIFEST_DESC = { '[android:usesCleartextTraffic=true]'), }, 'direct_boot_aware': { - 'title': 'App is direct-boot aware
[android:directBootAware=true]', + 'title': 'App is direct-boot aware [android:directBootAware=true]', 'level': 'info', 'description': ('This app can run before the user unlocks the device. ' 'If you\'re using a custom subclass of Application, ' @@ -52,7 +52,7 @@ MANIFEST_DESC = { }, 'has_network_security': { 'title': ('App has a Network Security Configuration' - '
[android:networkSecurityConfig=%s]'), + '[android:networkSecurityConfig=%s]'), 'level': 'info', 'description': ('The Network Security Configuration feature lets apps' ' customize their network security settings in a safe,' @@ -64,7 +64,7 @@ MANIFEST_DESC = { }, 'vulnerable_os_version': { 'title': ('App can be installed on a vulnerable ' - 'unpatched Android version
Android %s, [minSdk=%s]'), + 'unpatched Android version %s, [minSdk=%s]'), 'level': 'high', 'description': ('This application can be installed on an older version' ' of android that has multiple unfixed ' @@ -76,8 +76,8 @@ MANIFEST_DESC = { 'unpatched Android version %s, [minSdk=%s]'), }, 'vulnerable_os_version2': { - 'title': ('App can be installed on a vulnerable Android version' - '
Android %s, minSdk=%s]'), + 'title': ('App can be installed on a vulnerable Android version %s,' + ' minSdk=%s]'), 'level': 'warning', 'description': ('This application can be installed on an older version' ' of android that has multiple vulnerabilities. ' @@ -87,7 +87,7 @@ MANIFEST_DESC = { ' %s, [minSdk=%s]'), }, 'app_is_debuggable': { - 'title': 'Debug Enabled For App
[android:debuggable=true]', + 'title': 'Debug Enabled For App [android:debuggable=true]', 'level': 'high', 'description': ('Debugging was enabled on the app which makes it ' 'easier for reverse engineers to hook a debugger to' @@ -96,8 +96,7 @@ MANIFEST_DESC = { 'name': 'Debug Enabled For App [android:debuggable=true]', }, 'app_allowbackup': { - 'title': ('Application Data can be Backed up' - '
[android:allowBackup=true]'), + 'title': ('Application Data can be Backed up [android:allowBackup=true]'), 'level': 'warning', 'description': ('This flag allows anyone to backup your application' ' data via adb. It allows users who have enabled USB' @@ -106,7 +105,7 @@ MANIFEST_DESC = { 'name': 'Application Data can be Backed up [android:allowBackup=true]', }, 'allowbackup_not_set': { - 'title': ('Application Data can be Backed up
[android:allowBackup]' + 'title': ('Application Data can be Backed up [android:allowBackup]' ' flag is missing.'), 'level': 'warning', 'description': ('The flag [android:allowBackup] should be set to false' @@ -118,14 +117,14 @@ MANIFEST_DESC = { ' is missing.'), }, 'app_in_test_mode': { - 'title': 'Application is in Test Mode
[android:testOnly=true]', + 'title': 'Application is in Test Mode [android:testOnly=true]', 'level': 'high', 'description': ('It may expose functionality or data outside of itself' ' that would cause a security hole.'), 'name': 'Application is in Test Mode [android:testOnly=true]', }, 'task_affinity_set': { - 'title': 'TaskAffinity is set for activity
(%s)', + 'title': 'TaskAffinity is set for activity (%s)', 'level': 'warning', 'description': ('If taskAffinity is set, then other application' ' could read the Intents sent to Activities ' @@ -187,7 +186,7 @@ MANIFEST_DESC = { 'name': 'Activity (%s) is vulnerable to StrandHogg 2.0', }, 'improper_provider_permission': { - 'title': 'Improper Content Provider Permissions
[%s]', + 'title': 'Improper Content Provider Permissions [%s]', 'level': 'warning', 'description': ('A content provider permission was set to allows' ' access from any other app on the device. ' @@ -198,7 +197,7 @@ MANIFEST_DESC = { }, 'dialer_code_found': { 'title': ('Dailer Code: %s Found' - '
[android:scheme="android_secret_code"]'), + ' [android:scheme="android_secret_code"]'), 'level': 'warning', 'description': ('A secret code was found in the manifest. These codes,' ' when entered into the dialer grant access to hidden' @@ -207,7 +206,7 @@ MANIFEST_DESC = { ' [android:scheme="android_secret_code"]'), }, 'sms_receiver_port_found': { - 'title': 'Data SMS Receiver Set on Port: %s Found
[android:port]', + 'title': 'Data SMS Receiver Set on Port: %s Found [android:port]', 'level': 'warning', 'description': ('A binary SMS receiver is configured to listen on a' ' port. Binary SMS messages sent to a device are ' @@ -219,7 +218,7 @@ MANIFEST_DESC = { 'name': 'Data SMS Receiver Set on Port: %s Found. [android:port]', }, 'high_intent_priority_found': { - 'title': 'High Intent Priority (%s) - {%s} Hit(s)
[android:priority]', + 'title': 'High Intent Priority (%s) - {%s} Hit(s) [android:priority]', 'level': 'warning', 'description': ('By setting an intent priority higher than another' ' intent, the app effectively overrides ' @@ -227,7 +226,7 @@ MANIFEST_DESC = { 'name': 'High Intent Priority (%s) - {%s} Hit(s) [android:priority]', }, 'high_action_priority_found': { - 'title': 'High Action Priority (%s)
[android:priority] ', + 'title': 'High Action Priority (%s)[android:priority] ', 'level': 'warning', 'description': ('By setting an action priority higher than' ' another action, the app effectively ' @@ -235,8 +234,8 @@ MANIFEST_DESC = { 'name': 'High Action Priority (%s). [android:priority]', }, 'exported_protected_permission_signature': { - 'title': ('%s (%s) is Protected by a permission.' - '
%s
[android:exported=true]'), + 'title': ('%s (%s) is Protected by a permission.' + '%s [android:exported=true]'), 'level': 'info', 'description': ('A%s %s is found to be exported, but' ' is protected by permission.'), @@ -244,9 +243,9 @@ MANIFEST_DESC = { ' [%s] [android:exported=true]'), }, 'exported_protected_permission_normal': { - 'title': ('%s (%s) is Protected by a permission, but' + 'title': ('%s (%s) is Protected by a permission, but' ' the protection level of the permission should be checked.' - '
%s
[android:exported=true]'), + '%s [android:exported=true]'), 'level': 'warning', 'description': ('A%s %s is found to be shared with other apps on the' ' device therefore leaving it accessible to any other' @@ -264,9 +263,9 @@ MANIFEST_DESC = { ' [%s] [android:exported=true]'), }, 'exported_protected_permission_dangerous': { - 'title': ('%s (%s) is Protected by a permission, but' + 'title': ('%s (%s) is Protected by a permission, but' ' the protection level of the permission should be checked.' - '
%s
[android:exported=true]'), + ' %s [android:exported=true]'), 'level': 'warning', 'description': ('A%s %s is found to be shared with other apps on the' ' device therefore leaving it accessible to any other' @@ -283,9 +282,9 @@ MANIFEST_DESC = { ' [%s] [android:exported=true]'), }, 'exported_protected_permission_signatureorsystem': { - 'title': ('%s (%s) is Protected by a permission, but' + 'title': ('%s (%s) is Protected by a permission, but' ' the protection level of the permission should be checked.' - '
%s
[android:exported=true]'), + ' %s [android:exported=true]'), 'level': 'info', 'description': ('A%s %s is found to be exported, but is protected by' ' a permission. However, the protection level of the' @@ -300,9 +299,9 @@ MANIFEST_DESC = { ' [%s] [android:exported=true]'), }, 'exported_protected_permission_not_defined': { - 'title': ('%s (%s) is Protected by a permission, but' + 'title': ('%s (%s) is Protected by a permission, but' ' the protection level of the permission should be checked.' - '
%s
[android:exported=true]'), + ' %s [android:exported=true]'), 'level': 'warning', 'description': ('A%s %s is found to be shared with other apps on the' ' device therefore leaving it accessible to any other' @@ -321,10 +320,9 @@ MANIFEST_DESC = { 'checked. [%s] [android:exported=true]'), }, 'exported_protected_permission_normal_app_level': { - 'title': ('%s (%s) is Protected by a permission at' + 'title': ('%s (%s) is Protected by a permission at' ' the application level, but the protection level of the ' - 'permission should be checked.
%s
' - '[android:exported=true]'), + 'permission should be checked. %s [android:exported=true]'), 'level': 'warning', 'description': ('A%s %s is found to be shared with other apps on the' ' device therefore leaving it accessible to any other' @@ -341,10 +339,10 @@ MANIFEST_DESC = { 'checked. [%s] [android:exported=true]'), }, 'exported_protected_permission_dangerous_app_level': { - 'title': ('%s (%s) is Protected by a permission at' + 'title': ('%s (%s) is Protected by a permission at' ' the application level, but the protection level of the ' 'permission should be checked.' - '
%s
[android:exported=true]'), + ' %s [android:exported=true]'), 'level': 'warning', 'description': ('A%s %s is found to be shared with other apps on the' ' device therefore leaving it accessible to any other' @@ -362,8 +360,8 @@ MANIFEST_DESC = { 'checked. [%s] [android:exported=true]'), }, 'exported_protected_permission': { - 'title': ('%s (%s) Protected by a permission at' - ' the application level.
%s
[android:exported=true]'), + 'title': ('%s (%s) Protected by a permission at' + ' the application level. %s [android:exported=true]'), 'level': 'info', 'description': ('A%s %s is found to be exported, but is protected by' ' a permission at the application level.'), @@ -371,10 +369,10 @@ MANIFEST_DESC = { ' [%s] [android:exported=true]'), }, 'exported_protected_permission_signatureorsystem_app_level': { - 'title': ('%s (%s) is Protected by a permission at ' + 'title': ('%s (%s) is Protected by a permission at ' 'the application level, but the protection level of the ' 'permission should be checked.' - '
%s
[android:exported=true]'), + ' %s [android:exported=true]'), 'level': 'info', 'description': ('A%s %s is found to be exported, but is protected ' 'by a permission at the application level. However,' @@ -390,10 +388,10 @@ MANIFEST_DESC = { ' [%s] [android:exported=true]'), }, 'exported_protected_permission_app_level': { - 'title': ('%s (%s) is Protected by a permission' + 'title': ('%s (%s) is Protected by a permission' ' at the application, but the protection level of the ' 'permission should be checked.' - '
%s
[android:exported=true]'), + ' %s [android:exported=true]'), 'level': 'warning', 'description': ('A%s %s is found to be shared with other apps on ' 'the device therefore leaving it accessible to any' @@ -413,8 +411,8 @@ MANIFEST_DESC = { ' [%s] [android:exported=true]'), }, 'explicitly_exported': { - 'title': ('%s (%s) is not Protected.' - '
[android:exported=true]'), + 'title': ('%s (%s) is not Protected.' + ' [android:exported=true]'), 'level': 'warning', 'description': ('A%s %s is found to be shared with other apps on the' ' device therefore leaving it accessible to any other' @@ -422,8 +420,8 @@ MANIFEST_DESC = { 'name': '%s %s is not Protected. [android:exported=true]', }, 'exported_intent_filter_exists': { - 'title': ('%s (%s) is not Protected.
' - 'An intent-filter exists.'), + 'title': ('%s (%s) is not Protected.' + ' An intent-filter exists.'), 'level': 'warning', 'description': ('A%s %s is found to be shared with other apps on the' ' device therefore leaving it accessible to any other ' @@ -433,7 +431,7 @@ MANIFEST_DESC = { 'name': '%s %s is not Protected.An intent-filter exists.', }, 'exported_provider': { - 'title': ('%s (%s) is not Protected.
' + 'title': ('%s (%s) is not Protected. ' '[Content Provider, targetSdkVersion < 17]'), 'level': 'warning', 'description': ('A%s %s is found to be shared with other apps' @@ -447,9 +445,9 @@ MANIFEST_DESC = { ' [Content Provider, targetSdkVersion < 17]'), }, 'exported_provider_2': { - 'title': ('%s (%s) would not be Protected if the' + 'title': ('%s (%s) would not be Protected if the' ' application ran on a device where the the API level was' - ' less than 17.
[Content Provider, ' + ' less than 17. [Content Provider, ' 'targetSdkVersion >= 17]'), 'level': 'warning', 'description': ('The Content Provider(%s %s) would be exported if the' @@ -464,9 +462,9 @@ MANIFEST_DESC = { ' [Content Provider, targetSdkVersion >= 17]'), }, 'exported_provider_normal': { - 'title': ('%s (%s) is Protected by a permission, but' + 'title': ('%s (%s) is Protected by a permission, but' ' the protection level of the permission should be checked.' - '
%s
[Content Provider, targetSdkVersion < 17]'), + ' %s [Content Provider, targetSdkVersion < 17]'), 'level': 'warning', 'description': ('A%s %s is found to be shared with other apps on the' ' device therefore leaving it accessible to any other' @@ -485,9 +483,9 @@ MANIFEST_DESC = { ' targetSdkVersion < 17]'), }, 'exported_provider_danger': { - 'title': ('%s (%s) is Protected by a permission, ' + 'title': ('%s (%s) is Protected by a permission, ' 'but the protection level of the permission should be ' - 'checked.
%s
[Content Provider, ' + 'checked. %s [Content Provider, ' 'targetSdkVersion < 17]'), 'level': 'warning', 'description': ('A%s %s is found to be shared with other apps on the' @@ -506,8 +504,8 @@ MANIFEST_DESC = { 'targetSdkVersion < 17]'), }, 'exported_provider_signature': { - 'title': ('%s (%s) is Protected by a permission.' - '
%s
[Content Provider, targetSdkVersion < 17]'), + 'title': ('%s (%s) is Protected by a permission.' + ' %s [Content Provider, targetSdkVersion < 17]'), 'level': 'info', 'description': ('A%s %s is found to be shared with other apps on the' ' device therefore leaving it accessible to any other' @@ -517,9 +515,9 @@ MANIFEST_DESC = { 'targetSdkVersion < 17]'), }, 'exported_provider_signatureorsystem': { - 'title': ('%s (%s) is Protected by a permission,' + 'title': ('%s (%s) is Protected by a permission,' ' but the protection level of the permission should be ' - 'checked.
%s
[Content Provider, ' + 'checked. %s [Content Provider, ' 'targetSdkVersion < 17]'), 'level': 'info', 'description': ('A%s %s is found to be exported, but is protected by' @@ -535,9 +533,9 @@ MANIFEST_DESC = { 'targetSdkVersion < 17]'), }, 'exported_provider_unknown': { - 'title': ('%s (%s) is Protected by a permission, but' + 'title': ('%s (%s) is Protected by a permission, but' ' the protection level of the permission should be checked.' - '
%s
[Content Provider, targetSdkVersion < 17]'), + ' %s [Content Provider, targetSdkVersion < 17]'), 'level': 'warning', 'description': ('A%s %s is found to be shared with other apps on the ' 'device therefore leaving it accessible to any other ' @@ -556,10 +554,10 @@ MANIFEST_DESC = { ' targetSdkVersion < 17]'), }, 'exported_provider_normal_app': { - 'title': ('%s (%s) is Protected by a permission at' + 'title': ('%s (%s) is Protected by a permission at' ' the application level, but the protection level of the' ' permission should be checked.' - '
%s
[Content Provider, targetSdkVersion < 17]'), + ' %s [Content Provider, targetSdkVersion < 17]'), 'level': 'warning', 'description': ('A%s %s is found to be shared with other apps on the' ' device therefore leaving it accessible to any other' @@ -577,10 +575,10 @@ MANIFEST_DESC = { ' [%s] [Content Provider, targetSdkVersion < 17]'), }, 'exported_provider_danger_appl': { - 'title': ('%s (%s) is Protected by a permission at ' + 'title': ('%s (%s) is Protected by a permission at ' 'the application level, but the protection level of the ' 'permission should be checked.' - '
%s
[Content Provider, targetSdkVersion < 17]'), + ' %s [Content Provider, targetSdkVersion < 17]'), 'level': 'warning', 'description': ('A%s %s is found to be shared with other apps on the' ' device therefore leaving it accessible to any other' @@ -598,8 +596,8 @@ MANIFEST_DESC = { '[%s] [Content Provider, targetSdkVersion < 17]'), }, 'exported_provider_signature_appl': { - 'title': ('%s (%s) is Protected by a permission at' - ' the application level.
%s
[Content Provider,' + 'title': ('%s (%s) is Protected by a permission at' + ' the application level. %s [Content Provider,' ' targetSdkVersion < 17]'), 'level': 'info', 'description': ('A%s %s is found to be shared with other apps on' @@ -610,10 +608,10 @@ MANIFEST_DESC = { '[%s] [Content Provider, targetSdkVersion < 17]'), }, 'exported_provider_signatureorsystem_app': { - 'title': ('%s (%s) is Protected by a permission at' + 'title': ('%s (%s) is Protected by a permission at' ' the application level, but the protection level of the' ' permission should be checked.' - '
%s
[Content Provider, targetSdkVersion < 17]'), + ' %s [Content Provider, targetSdkVersion < 17]'), 'level': 'info', 'description': ('A%s %s is found to be exported, but is protected by' ' a permission at the application level. However, the' @@ -628,10 +626,10 @@ MANIFEST_DESC = { 'checked. [%s] [Content Provider, targetSdkVersion < 17]'), }, 'exported_provider_unknown_app': { - 'title': ('%s (%s) is Protected by a permission at' + 'title': ('%s (%s) is Protected by a permission at' ' application level, but the protection level of the ' - 'permission should be checked.
%s ' - '
[Content Provider, targetSdkVersion < 17]'), + 'permission should be checked. %s ' + '[Content Provider, targetSdkVersion < 17]'), 'level': 'warning', 'description': ('A%s %s is found to be shared with other apps on the' ' device therefore leaving it accessible to any other' @@ -650,11 +648,11 @@ MANIFEST_DESC = { ' [%s] [Content Provider, targetSdkVersion < 17]'), }, 'exported_provider_normal_new': { - 'title': ('%s (%s) is Protected by a permission, ' + 'title': ('%s (%s) is Protected by a permission, ' 'but the protection level of the permission should be ' 'checked if the application runs on a device where the ' 'the API level is less than 17' - '
%s
[Content Provider, targetSdkVersion >= 17]'), + ' %s [Content Provider, targetSdkVersion >= 17]'), 'level': 'warning', 'description': ('The Content Provider (%s) would be exported if the' ' application ran on a device where the the API level' @@ -673,10 +671,10 @@ MANIFEST_DESC = { ' [%s] [Content Provider, targetSdkVersion >= 17]'), }, 'exported_provider_danger_new': { - 'title': ('%s (%s) is Protected by a permission,' + 'title': ('%s (%s) is Protected by a permission,' ' but the protection level of the permission should be ' 'checked if the application runs on a device where ' - 'the API level is less than 17.
%s
' + 'the API level is less than 17. %s ' '[Content Provider, targetSdkVersion >= 17]'), 'level': 'warning', 'description': ('The Content Provider(%s) would be exported if the' @@ -696,8 +694,8 @@ MANIFEST_DESC = { ' [%s] [Content Provider, targetSdkVersion >= 17]'), }, 'exported_provider_signature_new': { - 'title': ('%s (%s) is Protected by a permission.' - '
%s
[Content Provider, targetSdkVersion >= 17]'), + 'title': ('%s (%s) is Protected by a permission.' + ' %s [Content Provider, targetSdkVersion >= 17]'), 'level': 'info', 'description': ('The Content Provider(%s) would be exported if the' ' application ran on a device where the the API level' @@ -707,9 +705,9 @@ MANIFEST_DESC = { ' [%s] [Content Provider, targetSdkVersion >= 17]'), }, 'exported_provider_signatureorsystem_new': { - 'title': ('%s (%s) is Protected by a permission, but' + 'title': ('%s (%s) is Protected by a permission, but' ' the protection level of the permission should be checked.' - '
%s
[Content Provider, targetSdkVersion >= 17]'), + ' %s [Content Provider, targetSdkVersion >= 17]'), 'level': 'info', 'description': ('The Content Provider(%s) would be exported if the ' 'application ran on a device where the API level was' @@ -726,10 +724,10 @@ MANIFEST_DESC = { ' [%s] [Content Provider, targetSdkVersion >= 17]'), }, 'exported_provider_unknown_new': { - 'title': ('%s (%s) is Protected by a permission, but' + 'title': ('%s (%s) is Protected by a permission, but' ' the protection level of the permission should be checked' ' if the application runs on a device where the the API ' - 'level is less than 17.
%s
' + 'level is less than 17. %s ' '[Content Provider, targetSdkVersion >= 17]'), 'level': 'warning', 'description': ('The Content Provider(%s) would be exported if the' @@ -751,11 +749,11 @@ MANIFEST_DESC = { ' [%s] [Content Provider, targetSdkVersion >= 17]'), }, 'exported_provider_normal_app_new': { - 'title': ('%s (%s) is Protected by a permission at' + 'title': ('%s (%s) is Protected by a permission at' ' the application level, but the protection level of the' ' permission should be checked if the application runs on' ' a device where the the API level is less than 17' - '
%s
[Content Provider, targetSdkVersion >= 17]'), + ' %s [Content Provider, targetSdkVersion >= 17]'), 'level': 'warning', 'description': ('The Content Provider (%s) would be exported if the' ' application ran on a device where the the API ' @@ -775,11 +773,11 @@ MANIFEST_DESC = { ' [%s] [Content Provider, targetSdkVersion >= 17]'), }, 'exported_provider_danger_app_new': { - 'title': ('%s (%s) is Protected by a permission at' + 'title': ('%s (%s) is Protected by a permission at' ' the application level, but the protection level of the' ' permission should be checked if the application runs on' ' a device where the the API level is less than 17.' - '
%s
[Content Provider, targetSdkVersion >= 17]'), + ' %s [Content Provider, targetSdkVersion >= 17]'), 'level': 'warning', 'description': ('The Content Provider(%s) would be exported if the' ' application ran on a device where the the API ' @@ -799,8 +797,8 @@ MANIFEST_DESC = { '[Content Provider, targetSdkVersion >= 17]'), }, 'exported_provider_signature_app_new': { - 'title': ('%s (%s) is Protected by a permission at' - ' the application level.
%s
' + 'title': ('%s (%s) is Protected by a permission at' + ' the application level. %s ' '[Content Provider, targetSdkVersion >= 17]'), 'level': 'info', 'description': ('The Content Provider(%s) would be exported if the' @@ -811,10 +809,10 @@ MANIFEST_DESC = { ' [%s] [Content Provider, targetSdkVersion >= 17]'), }, 'exported_provider_signatureorsystem_app_new': { - 'title': ('%s (%s) is Protected by a permission at' + 'title': ('%s (%s) is Protected by a permission at' ' the application level, but the protection level of the' ' permission should be checked.' - '
%s
[Content Provider, targetSdkVersion >= 17]'), + ' %s [Content Provider, targetSdkVersion >= 17]'), 'level': 'info', 'description': ('The Content Provider(%s) would be exported if the' ' application ran on a device where the API level was' @@ -831,11 +829,11 @@ MANIFEST_DESC = { ' [%s] [Content Provider, targetSdkVersion >= 17]'), }, 'exported_provider_unknown_app_new': { - 'title': ('%s (%s) is Protected by a permission at ' + 'title': ('%s (%s) is Protected by a permission at ' 'the application level, but the protection level of the ' 'permission should be checked if the application runs on' ' a device where the the API level is less than 17.' - '
%s
[Content Provider, targetSdkVersion >= 17]'), + ' %s [Content Provider, targetSdkVersion >= 17]'), 'level': 'warning', 'description': ('The Content Provider(%s) would be exported if the' ' application ran on a device where the the API level' diff --git a/mobsf/StaticAnalyzer/views/android/manifest_analysis.py b/mobsf/StaticAnalyzer/views/android/manifest_analysis.py index c589404e..715867cf 100755 --- a/mobsf/StaticAnalyzer/views/android/manifest_analysis.py +++ b/mobsf/StaticAnalyzer/views/android/manifest_analysis.py @@ -6,6 +6,7 @@ from urllib.parse import urlparse import requests from concurrent.futures import ThreadPoolExecutor +from django.utils.html import escape from mobsf.MobSF.utils import ( append_scan_status, @@ -68,6 +69,13 @@ ANDROID_API_LEVEL_MAP = { } +def escape_manifest_attribute(value): + """Escape manifest attributes.""" + if not value: + return value + return escape(value) + + def assetlinks_check(act_name, well_knowns): """Well known assetlink check.""" findings = [] @@ -314,6 +322,7 @@ def manifest_analysis(app_dic, man_data_dic): # Checks for Activities if itemname in ['Activity', 'Activity-Alias']: item = node.getAttribute(f'{ns}:name') + item = escape_manifest_attribute(item) # Browsable Activities browse_dic = get_browsable_activities(node, ns) if browse_dic['browsable']: @@ -377,6 +386,7 @@ def manifest_analysis(app_dic, man_data_dic): if node.getAttribute(f'{ns}:exported') == 'true': perm = '' item = node.getAttribute(f'{ns}:name') + item = escape_manifest_attribute(item) if node.getAttribute(f'{ns}:permission'): # permission exists perm = ('Permission: ' @@ -490,6 +500,7 @@ def manifest_analysis(app_dic, man_data_dic): is_inf = True if is_inf: item = node.getAttribute(f'{ns}:name') + item = escape_manifest_attribute(item) if node.getAttribute(f'{ns}:permission'): # permission exists perm = ('Permission: ' @@ -605,6 +616,7 @@ def manifest_analysis(app_dic, man_data_dic): if itemname == 'Content Provider' and int(man_data_dic['target_sdk']) < ANDROID_4_2_LEVEL: perm = '' item = node.getAttribute(f'{ns}:name') + item = escape_manifest_attribute(item) if node.getAttribute(f'{ns}:permission'): # permission exists perm = ('Permission: ' @@ -686,6 +698,7 @@ def manifest_analysis(app_dic, man_data_dic): perm = '' item = node.getAttribute( f'{ns}:name') + item = escape_manifest_attribute(item) if node.getAttribute(f'{ns}:permission'): # permission exists perm = ('Permission: ' @@ -773,10 +786,12 @@ def manifest_analysis(app_dic, man_data_dic): for data in data_tag: if data.getAttribute(f'{ns}:scheme') == 'android_secret_code': xmlhost = data.getAttribute(f'{ns}:host') + xmlhost = escape_manifest_attribute(xmlhost) ret_list.append(('dialer_code_found', (xmlhost,), ())) elif data.getAttribute(f'{ns}:port'): dataport = data.getAttribute(f'{ns}:port') + dataport = escape_manifest_attribute(dataport) ret_list.append(('sms_receiver_port_found', (dataport,), ())) # INTENTS processed_priorities = {} diff --git a/mobsf/templates/pdf/android_report.html b/mobsf/templates/pdf/android_report.html index cfc2b463..18a35a26 100755 --- a/mobsf/templates/pdf/android_report.html +++ b/mobsf/templates/pdf/android_report.html @@ -522,7 +522,7 @@ {{ forloop.counter }} - {{item|key:"title" | safe}} + {{item|key:"title"}} diff --git a/mobsf/templates/static_analysis/android_binary_analysis.html b/mobsf/templates/static_analysis/android_binary_analysis.html index cc1aced3..ca358295 100755 --- a/mobsf/templates/static_analysis/android_binary_analysis.html +++ b/mobsf/templates/static_analysis/android_binary_analysis.html @@ -1140,7 +1140,7 @@ {{ forloop.counter }} - {{item|key:"title" | safe}} + {{item|key:"title"}} diff --git a/mobsf/templates/static_analysis/android_source_analysis.html b/mobsf/templates/static_analysis/android_source_analysis.html index c9f06cd6..3261627e 100755 --- a/mobsf/templates/static_analysis/android_source_analysis.html +++ b/mobsf/templates/static_analysis/android_source_analysis.html @@ -876,7 +876,7 @@ {{ forloop.counter }} - {{item|key:"title" | safe}} + {{item|key:"title"}} diff --git a/mobsf/templates/static_analysis/compare.html b/mobsf/templates/static_analysis/compare.html index 8c0b5d14..06a3c7f9 100644 --- a/mobsf/templates/static_analysis/compare.html +++ b/mobsf/templates/static_analysis/compare.html @@ -872,17 +872,17 @@ {% for url in urls.common %} - {{ url | safe}}
+ {{ url }}
{% endfor %} {% for url in urls.only_first %} - {{ url | safe }}
+ {{ url }}
{% endfor %} {% for url in urls.only_second %} - {{ url | safe}}
+ {{ url }}
{% endfor %} diff --git a/mobsf/templates/static_analysis/windows_binary_analysis.html b/mobsf/templates/static_analysis/windows_binary_analysis.html index da6a0211..2adeb27f 100644 --- a/mobsf/templates/static_analysis/windows_binary_analysis.html +++ b/mobsf/templates/static_analysis/windows_binary_analysis.html @@ -430,7 +430,7 @@ diff --git a/poetry.lock b/poetry.lock index 0d00aeb5..9affab13 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. [[package]] name = "aioquic" @@ -6,7 +6,6 @@ version = "1.2.0" description = "An implementation of QUIC and HTTP/3" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "aioquic-1.2.0-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:3e23964dfb04526ade6e66f5b7cd0c830421b8138303ab60ba6e204015e7cb0b"}, {file = "aioquic-1.2.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:84d733332927b76218a3b246216104116f766f5a9b2308ec306cd017b3049660"}, @@ -52,7 +51,6 @@ version = "0.17.5" description = "Python graph (network) package" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "altgraph-0.17.5-py2.py3-none-any.whl", hash = "sha256:f3a22400bce1b0c701683820ac4f3b159cd301acab067c51c653e06961600597"}, {file = "altgraph-0.17.5.tar.gz", hash = "sha256:c87b395dd12fabde9c99573a9749d67da8d29ef9de0125c7f536699b4a9bc9e7"}, @@ -64,7 +62,6 @@ version = "3.0.0" description = "Android Package Identifier" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "apkid-3.0.0-py2.py3-none-any.whl", hash = "sha256:0e3b3d381dce46f39cb37479ba5675569113279d1d306e18be6dc70ca532072a"}, {file = "apkid-3.0.0.tar.gz", hash = "sha256:e554dfdeaf4c8a5207fba7c40796a36b39e03b55bb23b5af4e2b22435d374ad1"}, @@ -83,7 +80,6 @@ version = "1.1.1" description = "copy/extract/patch android apk signatures & compare apks" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "apksigcopier-1.1.1-py3-none-any.whl", hash = "sha256:0834bb7d6f3607bb0994cf8cd2e26b8f0c9d481e13b75872e0fa9cec052e519b"}, {file = "apksigcopier-1.1.1.tar.gz", hash = "sha256:ea5d3482128f2bcfa8307356f5bed4f4240a559d702acb117bf777955f64c851"}, @@ -98,7 +94,6 @@ version = "0.1.0" description = "parse & verify android apk signing blocks" optional = false python-versions = ">=3.5" -groups = ["main"] files = [ {file = "apksigtool-0.1.0-py3-none-any.whl", hash = "sha256:136525c43bc57942798de43e6dfed9df84081276957cbfd3a2d7b0b118a29089"}, {file = "apksigtool-0.1.0.tar.gz", hash = "sha256:0039368ce5b5f938301eaefb59a008df605df873dce67b55cd7803379475cfc7"}, @@ -117,7 +112,6 @@ version = "25.1.0" description = "Argon2 for Python" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "argon2_cffi-25.1.0-py3-none-any.whl", hash = "sha256:fdc8b074db390fccb6eb4a3604ae7231f219aa669a2652e0f20e16ba513d5741"}, {file = "argon2_cffi-25.1.0.tar.gz", hash = "sha256:694ae5cc8a42f4c4e2bf2ca0e64e51e23a040c6a517a85074683d3959e1346c1"}, @@ -132,7 +126,6 @@ version = "25.1.0" description = "Low-level CFFI bindings for Argon2" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:3d3f05610594151994ca9ccb3c771115bdb4daef161976a266f0dd8aa9996b8f"}, {file = "argon2_cffi_bindings-25.1.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8b8efee945193e667a396cbc7b4fb7d357297d6234d30a489905d96caabde56b"}, @@ -174,7 +167,6 @@ version = "2.3.0" description = "Library for accessing \"ar\" files" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "arpy-2.3.0.tar.gz", hash = "sha256:8302829a991cfcef2630b61e00f315db73164021cecbd7fb1fc18525f83f339c"}, ] @@ -185,7 +177,6 @@ version = "3.9.1" description = "ASGI specs, helper code, and adapters" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "asgiref-3.9.1-py3-none-any.whl", hash = "sha256:f3bba7092a48005b5f5bacd747d36ee4a5a61f4a269a6df590b43144355ebd2c"}, {file = "asgiref-3.9.1.tar.gz", hash = "sha256:a5ab6582236218e5ef1648f242fd9f10626cfd4de8dc377db215d5d5098e3142"}, @@ -200,7 +191,6 @@ version = "1.5.1" description = "Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12, PKCS#5, X.509 and TSP" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "asn1crypto-1.5.1-py2.py3-none-any.whl", hash = "sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67"}, {file = "asn1crypto-1.5.1.tar.gz", hash = "sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c"}, @@ -212,7 +202,6 @@ version = "25.4.0" description = "Classes Without Boilerplate" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373"}, {file = "attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11"}, @@ -224,7 +213,6 @@ version = "4.0.1" description = "Modern password hashing for your software and your servers" optional = false python-versions = ">=3.6" -groups = ["main"] files = [ {file = "bcrypt-4.0.1-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:b1023030aec778185a6c16cf70f359cbb6e0c289fd564a7cfa29e727a1c38f8f"}, {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:08d2947c490093a11416df18043c27abe3921558d2c03e2076ccb28a116cb6d0"}, @@ -259,7 +247,6 @@ version = "4.14.3" description = "Screen-scraping library" optional = false python-versions = ">=3.7.0" -groups = ["main"] files = [ {file = "beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb"}, {file = "beautifulsoup4-4.14.3.tar.gz", hash = "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86"}, @@ -282,7 +269,6 @@ version = "4.2.4" description = "Python multiprocessing fork with improvements and bugfixes" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "billiard-4.2.4-py3-none-any.whl", hash = "sha256:525b42bdec68d2b983347ac312f892db930858495db601b5836ac24e6477cde5"}, {file = "billiard-4.2.4.tar.gz", hash = "sha256:55f542c371209e03cd5862299b74e52e4fbcba8250ba611ad94276b369b6a85f"}, @@ -294,7 +280,6 @@ version = "6.3.0" description = "An easy safelist-based HTML-sanitizing tool." optional = false python-versions = ">=3.10" -groups = ["main"] files = [ {file = "bleach-6.3.0-py3-none-any.whl", hash = "sha256:fe10ec77c93ddf3d13a73b035abaac7a9f5e436513864ccdad516693213c65d6"}, {file = "bleach-6.3.0.tar.gz", hash = "sha256:6f3b91b1c0a02bb9a78b5a454c92506aa0fdf197e1d5e114d2e00c6f64306d22"}, @@ -312,7 +297,6 @@ version = "1.9.0" description = "Fast, simple object-to-object and broadcast signaling" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc"}, {file = "blinker-1.9.0.tar.gz", hash = "sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf"}, @@ -324,7 +308,6 @@ version = "1.1.0" description = "Python bindings for the Brotli compression library" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "Brotli-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e1140c64812cb9b06c922e77f1c26a75ec5e3f0fb2bf92cc8c58720dec276752"}, {file = "Brotli-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c8fd5270e906eef71d4a8d19b7c6a43760c6abcfcc10c9101d14eb2357418de9"}, @@ -459,7 +442,6 @@ version = "0.0.2" description = "Dummy package for Beautiful Soup (beautifulsoup4)" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "bs4-0.0.2-py2.py3-none-any.whl", hash = "sha256:abf8742c0805ef7f662dce4b51cca104cffe52b835238afc169142ab9b3fbccc"}, {file = "bs4-0.0.2.tar.gz", hash = "sha256:a48685c58f50fe127722417bae83fe6badf500d54b55f7e39ffe43b798653925"}, @@ -470,14 +452,13 @@ beautifulsoup4 = "*" [[package]] name = "certifi" -version = "2025.11.12" +version = "2026.1.4" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.7" -groups = ["main"] files = [ - {file = "certifi-2025.11.12-py3-none-any.whl", hash = "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b"}, - {file = "certifi-2025.11.12.tar.gz", hash = "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316"}, + {file = "certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c"}, + {file = "certifi-2026.1.4.tar.gz", hash = "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120"}, ] [[package]] @@ -486,7 +467,6 @@ version = "2.0.0" description = "Foreign Function Interface for Python calling C code." optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44"}, {file = "cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49"}, @@ -583,7 +563,6 @@ version = "3.4.4" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d"}, {file = "charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8"}, @@ -706,7 +685,6 @@ version = "8.3.1" description = "Composable command line interface toolkit" optional = false python-versions = ">=3.10" -groups = ["main"] files = [ {file = "click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6"}, {file = "click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a"}, @@ -721,7 +699,6 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -groups = ["main"] files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, @@ -733,7 +710,6 @@ version = "6.10.1" description = "Add colours to the output of Python's logging module." optional = false python-versions = ">=3.6" -groups = ["main"] files = [ {file = "colorlog-6.10.1-py3-none-any.whl", hash = "sha256:2d7e8348291948af66122cff006c9f8da6255d224e7cf8e37d8de2df3bad8c9c"}, {file = "colorlog-6.10.1.tar.gz", hash = "sha256:eb4ae5cb65fe7fec7773c2306061a8e63e02efc2c72eba9d27b0fa23c94f1321"}, @@ -751,7 +727,6 @@ version = "45.0.7" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." optional = false python-versions = "!=3.9.0,!=3.9.1,>=3.7" -groups = ["main"] files = [ {file = "cryptography-45.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:3be4f21c6245930688bd9e162829480de027f8bf962ede33d4f8ba7d67a00cee"}, {file = "cryptography-45.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:67285f8a611b0ebc0857ced2081e30302909f571a46bfa7a3cc0ad303fe015c6"}, @@ -796,10 +771,10 @@ files = [ cffi = {version = ">=1.14", markers = "platform_python_implementation != \"PyPy\""} [package.extras] -docs = ["sphinx (>=5.3.0)", "sphinx-inline-tabs ; python_full_version >= \"3.8.0\"", "sphinx-rtd-theme (>=3.0.0) ; python_full_version >= \"3.8.0\""] +docs = ["sphinx (>=5.3.0)", "sphinx-inline-tabs", "sphinx-rtd-theme (>=3.0.0)"] docstest = ["pyenchant (>=3)", "readme-renderer (>=30.0)", "sphinxcontrib-spelling (>=7.3.1)"] -nox = ["nox (>=2024.4.15)", "nox[uv] (>=2024.3.2) ; python_full_version >= \"3.8.0\""] -pep8test = ["check-sdist ; python_full_version >= \"3.8.0\"", "click (>=8.0.1)", "mypy (>=1.4)", "ruff (>=0.3.6)"] +nox = ["nox (>=2024.4.15)", "nox[uv] (>=2024.3.2)"] +pep8test = ["check-sdist", "click (>=8.0.1)", "mypy (>=1.4)", "ruff (>=0.3.6)"] sdist = ["build (>=1.0.0)"] ssh = ["bcrypt (>=3.1.5)"] test = ["certifi (>=2024)", "cryptography-vectors (==45.0.7)", "pretend (>=0.7)", "pytest (>=7.4.0)", "pytest-benchmark (>=4.0)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=3.5.0)"] @@ -811,7 +786,6 @@ version = "0.7.1" description = "XML bomb protection for Python stdlib modules" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -groups = ["main"] files = [ {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, @@ -823,7 +797,6 @@ version = "1.9.0" description = "Distro - an OS platform information API" optional = false python-versions = ">=3.6" -groups = ["main"] files = [ {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"}, {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, @@ -831,14 +804,13 @@ files = [ [[package]] name = "django" -version = "6.0" +version = "6.0.1" description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design." optional = false python-versions = ">=3.12" -groups = ["main"] files = [ - {file = "django-6.0-py3-none-any.whl", hash = "sha256:1cc2c7344303bbfb7ba5070487c17f7fc0b7174bbb0a38cebf03c675f5f19b6d"}, - {file = "django-6.0.tar.gz", hash = "sha256:7b0c1f50c0759bbe6331c6a39c89ae022a84672674aeda908784617ef47d8e26"}, + {file = "django-6.0.1-py3-none-any.whl", hash = "sha256:a92a4ff14f664a896f9849009cb8afaca7abe0d6fc53325f3d1895a15253433d"}, + {file = "django-6.0.1.tar.gz", hash = "sha256:ed76a7af4da21551573b3d9dfc1f53e20dd2e6c7d70a3adc93eedb6338130a5f"}, ] [package.dependencies] @@ -856,7 +828,6 @@ version = "3.4.0" description = "Pickled object field for Django" optional = false python-versions = ">=3.10" -groups = ["main"] files = [ {file = "django_picklefield-3.4.0-py3-none-any.whl", hash = "sha256:929bcfbae5b48bd22a52bc04521fdfdd152eee36abb9f20228f9480f9df65f45"}, {file = "django_picklefield-3.4.0.tar.gz", hash = "sha256:3a1f740536c0e60d0dba43aa89ccdbe86760d4c3f8ec47799eae122baa741d0a"}, @@ -874,7 +845,6 @@ version = "1.9.0" description = "A multiprocessing distributed task queue for Django" optional = false python-versions = "<4,>=3.9" -groups = ["main"] files = [ {file = "django_q2-1.9.0-py3-none-any.whl", hash = "sha256:4eded27644b0ffb291839c9f9c12fea6c0dec63ebd891fa6881b0b446098a49d"}, {file = "django_q2-1.9.0.tar.gz", hash = "sha256:ef7facca96fae9c11ddf2c5252d3817975c7a9a6d989fa0d65487d8823d57799"}, @@ -895,7 +865,6 @@ version = "4.1.0" description = "Cache-based rate-limiting for Django." optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "django-ratelimit-4.1.0.tar.gz", hash = "sha256:555943b283045b917ad59f196829530d63be2a39adb72788d985b90c81ba808b"}, {file = "django_ratelimit-4.1.0-py2.py3-none-any.whl", hash = "sha256:d047a31cf94d83ef1465d7543ca66c6fc16695559b5f8d814d1b51df15110b92"}, @@ -903,14 +872,13 @@ files = [ [[package]] name = "filelock" -version = "3.20.0" +version = "3.20.3" description = "A platform independent file lock." optional = false python-versions = ">=3.10" -groups = ["main"] files = [ - {file = "filelock-3.20.0-py3-none-any.whl", hash = "sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2"}, - {file = "filelock-3.20.0.tar.gz", hash = "sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4"}, + {file = "filelock-3.20.3-py3-none-any.whl", hash = "sha256:4b0dda527ee31078689fc205ec4f1c1bf7d56cf88b6dc9426c4f230e46c2dce1"}, + {file = "filelock-3.20.3.tar.gz", hash = "sha256:18c57ee915c7ec61cff0ecf7f0f869936c7c30191bb0cf406f1341778d0834e1"}, ] [[package]] @@ -919,7 +887,6 @@ version = "3.1.2" description = "A simple framework for building complex web applications." optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "flask-3.1.2-py3-none-any.whl", hash = "sha256:ca1d8112ec8a6158cc29ea4858963350011b5c846a414cdb7a954aa9e967d03c"}, {file = "flask-3.1.2.tar.gz", hash = "sha256:bf656c15c80190ed628ad08cdfd3aaa35beb087855e2f494910aa3774cc4fd87"}, @@ -939,37 +906,35 @@ dotenv = ["python-dotenv"] [[package]] name = "frida" -version = "17.5.1" +version = "17.6.2" description = "Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ - {file = "frida-17.5.1-cp37-abi3-macosx_10_13_x86_64.whl", hash = "sha256:860b144074bf0c255748c9bc5620b8cddfd456f12a607eeec1e76fe1a838f0c7"}, - {file = "frida-17.5.1-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:1e08c055e002cd68acd161607ff0f8d0602a31ba92999f17062960203dd89390"}, - {file = "frida-17.5.1-cp37-abi3-manylinux1_i686.whl", hash = "sha256:4bf6d36e4f0b09bad5538990def6692b32848abb984f61366dc839b051c42bc0"}, - {file = "frida-17.5.1-cp37-abi3-manylinux1_x86_64.whl", hash = "sha256:8146072e328ba1423f697cc1f9a539caf7e639b700f6172d901a8b819c47be2d"}, - {file = "frida-17.5.1-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:cd4f669b153c596b36746de51e74a2634a130cddad5054cca25576d921ed05b7"}, - {file = "frida-17.5.1-cp37-abi3-manylinux2014_armv7l.whl", hash = "sha256:3a0739f044b7d0c8a1df04365023896004eed105d75c08f3c5bd78c7bf2f845a"}, - {file = "frida-17.5.1-cp37-abi3-manylinux_2_17_aarch64.whl", hash = "sha256:b08bf6fe4ca42b734b6f210d7b97723dfdb0353fecaf8d03597f5008c6cf6f15"}, - {file = "frida-17.5.1-cp37-abi3-manylinux_2_17_armv7l.whl", hash = "sha256:cb7d098672935e3fa6c4256747a7f89324d7b46d794682d8e91e0355b1bb0cda"}, - {file = "frida-17.5.1-cp37-abi3-manylinux_2_5_i686.whl", hash = "sha256:31be3ec5157e806413e2091219ae83935c69afaaffa66f200f68e2eb4e48c538"}, - {file = "frida-17.5.1-cp37-abi3-manylinux_2_5_x86_64.whl", hash = "sha256:69e5101d7f81fc4005fc3ce5dafba17072808b8ab259f47a33d82dec5ca02718"}, - {file = "frida-17.5.1-cp37-abi3-win32.whl", hash = "sha256:a815c7038f8a410788bdb1d0f08cf28d24b7a2fca4ab9869c825908bc2fcabc4"}, - {file = "frida-17.5.1-cp37-abi3-win_amd64.whl", hash = "sha256:7efdeb7e95c8e025517e203c2d1121c9eb07c9a3f33a1312ed5960c757e2fe98"}, - {file = "frida-17.5.1-cp37-abi3-win_arm64.whl", hash = "sha256:6b2fc209c0a7889cceaf61ad08764621da7a7759f0c7e467857e534913642058"}, - {file = "frida-17.5.1.tar.gz", hash = "sha256:633109df95a8eff9b104ac840a8f41a48cb92ac9a03f752ac5db03078a587e57"}, + {file = "frida-17.6.2-cp37-abi3-macosx_10_13_x86_64.whl", hash = "sha256:9763d7297643492a06d37a0fa21d43f414c3b7e58db0e81592c15d366a6adb79"}, + {file = "frida-17.6.2-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:cbda78d63a9215086c7c6a05db26be0d6016f6f919e7135d3b9ffb46793ae3cb"}, + {file = "frida-17.6.2-cp37-abi3-manylinux1_i686.whl", hash = "sha256:eb2cfa5a008448e1f2a69812b419a08424fdc4a8a9b9bf92359eb96b73b84c4d"}, + {file = "frida-17.6.2-cp37-abi3-manylinux1_x86_64.whl", hash = "sha256:9c4508c427be455ee89730786bd9383eda7238fb3db22f85c255a667dd4bc491"}, + {file = "frida-17.6.2-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:e8544826fec0f592213b1c6d3b8a761850728bb06ac0112e872d3eb275804e69"}, + {file = "frida-17.6.2-cp37-abi3-manylinux2014_armv7l.whl", hash = "sha256:989a3cf929f7d07a54359bd92726a53487083d0f5d15aeb2d866ddb3ff23a08d"}, + {file = "frida-17.6.2-cp37-abi3-manylinux_2_17_aarch64.whl", hash = "sha256:31ae33288cba23b56e6798319cdb70a75dff346084ddae5a51de4c8f84c1be53"}, + {file = "frida-17.6.2-cp37-abi3-manylinux_2_17_armv7l.whl", hash = "sha256:d08e6963a35ed439c9c8c562da5f669d8dc04ea1d6e51a40a8f87b1036ae9ebc"}, + {file = "frida-17.6.2-cp37-abi3-manylinux_2_5_i686.whl", hash = "sha256:8587e692b0dabd79346bd60911b117e964d1dce9fb5fa4a8f09ebfceda863945"}, + {file = "frida-17.6.2-cp37-abi3-manylinux_2_5_x86_64.whl", hash = "sha256:65d80cc275304e6dd4b9b7ebcfab22d65273e47f0a91cb3e6b13945398998a03"}, + {file = "frida-17.6.2-cp37-abi3-win32.whl", hash = "sha256:38b4b46f109f09001c5f65729672b6c2237bd06a83fbd511cf448c040738ddee"}, + {file = "frida-17.6.2-cp37-abi3-win_amd64.whl", hash = "sha256:c8669c36875c4e87064ffbda3ee59075c85de0eee76131e7ab1dde30e16289ea"}, + {file = "frida-17.6.2-cp37-abi3-win_arm64.whl", hash = "sha256:b33366f5293c16d80c3929d15820d88e1e7432d3f28e9d031d568a40a8e2b29b"}, + {file = "frida-17.6.2.tar.gz", hash = "sha256:1dfbf61d07702859b897ce5ecf8f2107ef941647e7c461bfdb681605a0747b51"}, ] [[package]] name = "frida-tools" -version = "14.5.0" +version = "14.5.1" description = "Frida CLI tools" optional = false python-versions = "*" -groups = ["main"] files = [ - {file = "frida_tools-14.5.0.tar.gz", hash = "sha256:59d8f1d0d0c6a23a5ac9c1dc817a7e52206c880a11dd5dd4696c3df78f07599d"}, + {file = "frida_tools-14.5.1.tar.gz", hash = "sha256:32c22a9367c791c4124068644f26d5c6fa0a84bbdd4d66ed16aef0e87ca4c4bf"}, ] [package.dependencies] @@ -985,7 +950,6 @@ version = "1.2.7" description = "Google-Play-Scraper provides APIs to easily crawl the Google Play Store for Python without any external dependencies!" optional = false python-versions = "<4.0,>=3.7" -groups = ["main"] files = [ {file = "google_play_scraper-1.2.7-py3-none-any.whl", hash = "sha256:a485510b09265f0096fc3813cfc26eef27e9a5c0035f99ee23f80e00de724530"}, {file = "google_play_scraper-1.2.7.tar.gz", hash = "sha256:284f321d1b2c39e39e97e490d51bc316e1d876802360efb7e7463b5c16ed4972"}, @@ -993,26 +957,24 @@ files = [ [[package]] name = "gunicorn" -version = "23.0.0" +version = "24.1.1" description = "WSGI HTTP Server for UNIX" optional = false -python-versions = ">=3.7" -groups = ["main"] -markers = "sys_platform != \"win32\"" +python-versions = ">=3.10" files = [ - {file = "gunicorn-23.0.0-py3-none-any.whl", hash = "sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d"}, - {file = "gunicorn-23.0.0.tar.gz", hash = "sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec"}, + {file = "gunicorn-24.1.1-py3-none-any.whl", hash = "sha256:757f6b621fc4f7581a90600b2cd9df593461f06a41d7259cb9b94499dc4095a8"}, + {file = "gunicorn-24.1.1.tar.gz", hash = "sha256:f006d110e5cb3102859b4f5cd48335dbd9cc28d0d27cd24ddbdafa6c60929408"}, ] [package.dependencies] packaging = "*" [package.extras] -eventlet = ["eventlet (>=0.24.1,!=0.36.0)"] -gevent = ["gevent (>=1.4.0)"] +eventlet = ["eventlet (>=0.40.3)"] +gevent = ["gevent (>=24.10.1)"] setproctitle = ["setproctitle"] -testing = ["coverage", "eventlet", "gevent", "pytest", "pytest-cov"] -tornado = ["tornado (>=0.2)"] +testing = ["coverage", "eventlet (>=0.40.3)", "gevent (>=24.10.1)", "pytest", "pytest-asyncio", "pytest-cov"] +tornado = ["tornado (>=6.5.0)"] [[package]] name = "h11" @@ -1020,7 +982,6 @@ version = "0.16.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"}, {file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"}, @@ -1032,7 +993,6 @@ version = "4.3.0" description = "Pure-Python HTTP/2 protocol implementation" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "h2-4.3.0-py3-none-any.whl", hash = "sha256:c438f029a25f7945c69e0ccf0fb951dc3f73a5f6412981daee861431b70e2bdd"}, {file = "h2-4.3.0.tar.gz", hash = "sha256:6c59efe4323fa18b47a632221a1888bd7fde6249819beda254aeca909f221bf1"}, @@ -1048,7 +1008,6 @@ version = "4.1.0" description = "Pure-Python HPACK header encoding" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "hpack-4.1.0-py3-none-any.whl", hash = "sha256:157ac792668d995c657d93111f46b4535ed114f0c9c8d672271bbec7eae1b496"}, {file = "hpack-4.1.0.tar.gz", hash = "sha256:ec5eca154f7056aa06f196a557655c5b009b382873ac8d1e66e79e87535f1dca"}, @@ -1060,7 +1019,6 @@ version = "6.0.0" description = "httptools helps you to capture, repeat and live intercept HTTP requests. It is built on top of [mitmproxy](https://mitmproxy.org/)" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "http_tools-6.0.0.tar.gz", hash = "sha256:c65923f225370592312bfd8be2c0f6cf2007f40e17f0ca524ffae0cdbf91fcdb"}, ] @@ -1075,7 +1033,6 @@ version = "6.1.0" description = "Pure-Python HTTP/2 framing" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "hyperframe-6.1.0-py3-none-any.whl", hash = "sha256:b03380493a519fce58ea5af42e4a42317bf9bd425596f7a0835ffce80f1a42e5"}, {file = "hyperframe-6.1.0.tar.gz", hash = "sha256:f630908a00854a7adeabd6382b43923a4c4cd4b821fcb527e6ab9e15382a3b08"}, @@ -1087,7 +1044,6 @@ version = "3.11" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea"}, {file = "idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902"}, @@ -1102,7 +1058,6 @@ version = "8.11.0" description = "This is an IP geolocation library that enables the user to find the country, region, city, latitude and longitude, ZIP code, time zone, ISP, domain name, area code, weather info, mobile info, elevation, usage type, address type and IAB category from an IP address. It supports both IPv4 and IPv6 lookup." optional = false python-versions = "*" -groups = ["main"] files = [ {file = "ip2location-8.11.0-py3-none-any.whl", hash = "sha256:cee21e91ccffbbc5486c588fac5ea5d210feb7e1754d17090e7c6ab358bab16a"}, {file = "ip2location-8.11.0.tar.gz", hash = "sha256:444149a741f6575d7711cf5414cfb81f0c44f830e2e94ab968d74665f8baaa31"}, @@ -1114,7 +1069,6 @@ version = "0.7.2" description = "An ISO 8601 date/time/duration parser and formatter" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "isodate-0.7.2-py3-none-any.whl", hash = "sha256:28009937d8031054830160fce6d409ed342816b543597cece116d966c6d99e15"}, {file = "isodate-0.7.2.tar.gz", hash = "sha256:4cd1aa0f43ca76f4a6c6c0292a85f40b35ec2e43e315b59f06e6d32171a953e6"}, @@ -1126,7 +1080,6 @@ version = "2.2.0" description = "Safely pass data to untrusted environments and back." optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef"}, {file = "itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173"}, @@ -1138,7 +1091,6 @@ version = "3.1.6" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, @@ -1156,7 +1108,6 @@ version = "0.10" description = "Kaitai Struct declarative parser generator for binary data: runtime library for Python" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" -groups = ["main"] files = [ {file = "kaitaistruct-0.10-py2.py3-none-any.whl", hash = "sha256:a97350919adbf37fda881f75e9365e2fb88d04832b7a4e57106ec70119efb235"}, {file = "kaitaistruct-0.10.tar.gz", hash = "sha256:a044dee29173d6afbacf27bcac39daf89b654dd418cfa009ab82d9178a9ae52a"}, @@ -1168,7 +1119,6 @@ version = "2.9.1" description = "A strictly RFC 4510 conforming LDAP V3 pure Python client library" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "ldap3-2.9.1-py2.py3-none-any.whl", hash = "sha256:5869596fc4948797020d3f03b7939da938778a0f9e2009f7a072ccf92b8e8d70"}, {file = "ldap3-2.9.1.tar.gz", hash = "sha256:f3e7fc4718e3f09dda568b57100095e0ce58633bcabbed8667ce3f8fbaa4229f"}, @@ -1183,7 +1133,6 @@ version = "3.1.6" description = "A generic SAST library built on top of semgrep and regex" optional = false python-versions = "<4.0,>=3.8" -groups = ["main"] files = [ {file = "libsast-3.1.6-py3-none-any.whl", hash = "sha256:43b9a818e81af6d8db7666f97ad5b1b67a14982b7881dff4e62a6d7c180e817e"}, {file = "libsast-3.1.6.tar.gz", hash = "sha256:a5a5a5a0bc8b0aa1ba61170335ec36a9644d48432e7cbfae6b73dde8cb66e3d8"}, @@ -1200,7 +1149,6 @@ version = "0.16.7" description = "Library to instrument executable formats" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "lief-0.16.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:22b6b8a7fba2c6474900f84bbe581971b66edc295ccbe36c7dc8d3733b224bd9"}, {file = "lief-0.16.7-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:09859f1ccfe25de456bcb523ca4ed0e23becbf2fedd750653fa843107800ee71"}, @@ -1283,7 +1231,6 @@ version = "6.0.2" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "lxml-6.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e77dd455b9a16bbd2a5036a63ddbd479c19572af81b624e79ef422f929eef388"}, {file = "lxml-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d444858b9f07cefff6455b983aea9a67f7462ba1f6cbe4a21e8bf6791bf2153"}, @@ -1439,7 +1386,6 @@ version = "1.16.4" description = "Mach-O header analysis and editing" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "macholib-1.16.4-py2.py3-none-any.whl", hash = "sha256:da1a3fa8266e30f0ce7e97c6a54eefaae8edd1e5f86f3eb8b95457cae90265ea"}, {file = "macholib-1.16.4.tar.gz", hash = "sha256:f408c93ab2e995cd2c46e34fe328b130404be143469e41bc366c807448979362"}, @@ -1454,7 +1400,6 @@ version = "3.0.3" description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559"}, {file = "markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419"}, @@ -1553,7 +1498,6 @@ version = "12.1.2" description = "An interactive, SSL/TLS-capable intercepting proxy for HTTP/1, HTTP/2, and WebSockets." optional = false python-versions = ">=3.12" -groups = ["main"] files = [ {file = "mitmproxy-12.1.2-py3-none-any.whl", hash = "sha256:fbe3cd38e3722f926a4655aeebf429fe69c47c72a852ca37d208765774ae76af"}, ] @@ -1593,8 +1537,6 @@ version = "0.12.8" description = "" optional = false python-versions = ">=3.12" -groups = ["main"] -markers = "sys_platform == \"linux\"" files = [ {file = "mitmproxy_linux-0.12.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2238455e65970382825baed2e998601ea82d8dcaae51bd8ee0859d596524a822"}, {file = "mitmproxy_linux-0.12.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fbcb25316e95d0b2b5ced4e0cc3d90fdb1b7169300a005cc79339894d665363a"}, @@ -1607,8 +1549,6 @@ version = "0.12.8" description = "" optional = false python-versions = ">=3.12" -groups = ["main"] -markers = "sys_platform == \"darwin\"" files = [ {file = "mitmproxy_macos-0.12.8-py3-none-any.whl", hash = "sha256:6da01f118e2110ddf038489c804e77818ef5217d34dc9605cb265a349ed4f140"}, ] @@ -1619,7 +1559,6 @@ version = "0.12.8" description = "" optional = false python-versions = ">=3.12" -groups = ["main"] files = [ {file = "mitmproxy_rs-0.12.8-cp312-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:c5b0799808a4de0ee60e8f350043820ad56eea738ce3ce25d5c6faaa245b6c9a"}, {file = "mitmproxy_rs-0.12.8-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:739591f696cf29913302a72fa9644cf97228774604304a2ea3987fe5588d231c"}, @@ -1639,8 +1578,6 @@ version = "0.12.8" description = "" optional = false python-versions = ">=3.12" -groups = ["main"] -markers = "os_name == \"nt\"" files = [ {file = "mitmproxy_windows-0.12.8-py3-none-any.whl", hash = "sha256:2dd727e2caed642ecfbbad1ca4d07d28fca0c5ab1b0be9dc62ccecbdb2257dce"}, ] @@ -1651,7 +1588,6 @@ version = "1.1.1" description = "MessagePack serializer" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "msgpack-1.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:353b6fc0c36fde68b661a12949d7d49f8f51ff5fa019c1e47c87c4ff34b080ed"}, {file = "msgpack-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:79c408fcf76a958491b4e3b103d1c417044544b68e96d06432a189b43d1215c8"}, @@ -1720,7 +1656,6 @@ version = "2.0.3" description = "OpenStep plist reader into python objects" optional = false python-versions = ">=3.10" -groups = ["main"] files = [ {file = "openstep_parser-2.0.3-py3-none-any.whl", hash = "sha256:f219954501e92ced2d3589781201786a930e9a8738128f193b4a425bbee517be"}, {file = "openstep_parser-2.0.3.tar.gz", hash = "sha256:bf7763599de5fc67bde55f6394d036fc5f8090deeead42948c8e6209a6033689"}, @@ -1728,14 +1663,13 @@ files = [ [[package]] name = "packaging" -version = "25.0" +version = "26.0" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ - {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, - {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, + {file = "packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529"}, + {file = "packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4"}, ] [[package]] @@ -1744,7 +1678,6 @@ version = "3.5.1" description = "SSH2 protocol library" optional = false python-versions = ">=3.6" -groups = ["main"] files = [ {file = "paramiko-3.5.1-py3-none-any.whl", hash = "sha256:43b9a0501fc2b5e70680388d9346cf252cfb7d00b0667c39e80eb43a408b8f61"}, {file = "paramiko-3.5.1.tar.gz", hash = "sha256:b2c665bc45b2b215bd7d7f039901b14b067da00f3a11e6640995fd58f2664822"}, @@ -1756,8 +1689,8 @@ cryptography = ">=3.3" pynacl = ">=1.5" [package.extras] -all = ["gssapi (>=1.4.1) ; platform_system != \"Windows\"", "invoke (>=2.0)", "pyasn1 (>=0.1.7)", "pywin32 (>=2.1.8) ; platform_system == \"Windows\""] -gssapi = ["gssapi (>=1.4.1) ; platform_system != \"Windows\"", "pyasn1 (>=0.1.7)", "pywin32 (>=2.1.8) ; platform_system == \"Windows\""] +all = ["gssapi (>=1.4.1)", "invoke (>=2.0)", "pyasn1 (>=0.1.7)", "pywin32 (>=2.1.8)"] +gssapi = ["gssapi (>=1.4.1)", "pyasn1 (>=0.1.7)", "pywin32 (>=2.1.8)"] invoke = ["invoke (>=2.0)"] [[package]] @@ -1766,7 +1699,6 @@ version = "1.7.4" description = "comprehensive password hashing framework supporting over 30 schemes" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "passlib-1.7.4-py2.py3-none-any.whl", hash = "sha256:aa6bca462b8d8bda89c70b382f0c298a20b5560af6cbfa2dce410c0a2fb669f1"}, {file = "passlib-1.7.4.tar.gz", hash = "sha256:defd50f72b65c5402ab2c573830a6978e5f202ad0d984793c8dde2c4152ebe04"}, @@ -1784,7 +1716,6 @@ version = "1.0.0" description = "Wkhtmltopdf python wrapper to convert html to pdf using the webkit rendering engine and qt" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "pdfkit-1.0.0-py2-none-any.whl", hash = "sha256:cc122e5aed594198ff7aaa566f2950d2163763576ab891c161bb1f6c630f5a8e"}, {file = "pdfkit-1.0.0-py3-none-any.whl", hash = "sha256:a7a4ca0d978e44fa8310c4909f087052430a6e8e0b1dd7ceef657f139789f96f"}, @@ -1797,7 +1728,6 @@ version = "3.0.52" description = "Library for building powerful interactive command lines in Python" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955"}, {file = "prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855"}, @@ -1808,36 +1738,37 @@ wcwidth = "*" [[package]] name = "psutil" -version = "7.1.3" +version = "7.2.1" description = "Cross-platform lib for process and system monitoring." optional = false python-versions = ">=3.6" -groups = ["main"] files = [ - {file = "psutil-7.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0005da714eee687b4b8decd3d6cc7c6db36215c9e74e5ad2264b90c3df7d92dc"}, - {file = "psutil-7.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:19644c85dcb987e35eeeaefdc3915d059dac7bd1167cdcdbf27e0ce2df0c08c0"}, - {file = "psutil-7.1.3-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95ef04cf2e5ba0ab9eaafc4a11eaae91b44f4ef5541acd2ee91d9108d00d59a7"}, - {file = "psutil-7.1.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1068c303be3a72f8e18e412c5b2a8f6d31750fb152f9cb106b54090296c9d251"}, - {file = "psutil-7.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:18349c5c24b06ac5612c0428ec2a0331c26443d259e2a0144a9b24b4395b58fa"}, - {file = "psutil-7.1.3-cp313-cp313t-win_arm64.whl", hash = "sha256:c525ffa774fe4496282fb0b1187725793de3e7c6b29e41562733cae9ada151ee"}, - {file = "psutil-7.1.3-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:b403da1df4d6d43973dc004d19cee3b848e998ae3154cc8097d139b77156c353"}, - {file = "psutil-7.1.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ad81425efc5e75da3f39b3e636293360ad8d0b49bed7df824c79764fb4ba9b8b"}, - {file = "psutil-7.1.3-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8f33a3702e167783a9213db10ad29650ebf383946e91bc77f28a5eb083496bc9"}, - {file = "psutil-7.1.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fac9cd332c67f4422504297889da5ab7e05fd11e3c4392140f7370f4208ded1f"}, - {file = "psutil-7.1.3-cp314-cp314t-win_amd64.whl", hash = "sha256:3792983e23b69843aea49c8f5b8f115572c5ab64c153bada5270086a2123c7e7"}, - {file = "psutil-7.1.3-cp314-cp314t-win_arm64.whl", hash = "sha256:31d77fcedb7529f27bb3a0472bea9334349f9a04160e8e6e5020f22c59893264"}, - {file = "psutil-7.1.3-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:2bdbcd0e58ca14996a42adf3621a6244f1bb2e2e528886959c72cf1e326677ab"}, - {file = "psutil-7.1.3-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:bc31fa00f1fbc3c3802141eede66f3a2d51d89716a194bf2cd6fc68310a19880"}, - {file = "psutil-7.1.3-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3bb428f9f05c1225a558f53e30ccbad9930b11c3fc206836242de1091d3e7dd3"}, - {file = "psutil-7.1.3-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:56d974e02ca2c8eb4812c3f76c30e28836fffc311d55d979f1465c1feeb2b68b"}, - {file = "psutil-7.1.3-cp37-abi3-win_amd64.whl", hash = "sha256:f39c2c19fe824b47484b96f9692932248a54c43799a84282cfe58d05a6449efd"}, - {file = "psutil-7.1.3-cp37-abi3-win_arm64.whl", hash = "sha256:bd0d69cee829226a761e92f28140bec9a5ee9d5b4fb4b0cc589068dbfff559b1"}, - {file = "psutil-7.1.3.tar.gz", hash = "sha256:6c86281738d77335af7aec228328e944b30930899ea760ecf33a4dba66be5e74"}, + {file = "psutil-7.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ba9f33bb525b14c3ea563b2fd521a84d2fa214ec59e3e6a2858f78d0844dd60d"}, + {file = "psutil-7.2.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:81442dac7abfc2f4f4385ea9e12ddf5a796721c0f6133260687fec5c3780fa49"}, + {file = "psutil-7.2.1-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ea46c0d060491051d39f0d2cff4f98d5c72b288289f57a21556cc7d504db37fc"}, + {file = "psutil-7.2.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:35630d5af80d5d0d49cfc4d64c1c13838baf6717a13effb35869a5919b854cdf"}, + {file = "psutil-7.2.1-cp313-cp313t-win_amd64.whl", hash = "sha256:923f8653416604e356073e6e0bccbe7c09990acef442def2f5640dd0faa9689f"}, + {file = "psutil-7.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:cfbe6b40ca48019a51827f20d830887b3107a74a79b01ceb8cc8de4ccb17b672"}, + {file = "psutil-7.2.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:494c513ccc53225ae23eec7fe6e1482f1b8a44674241b54561f755a898650679"}, + {file = "psutil-7.2.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3fce5f92c22b00cdefd1645aa58ab4877a01679e901555067b1bd77039aa589f"}, + {file = "psutil-7.2.1-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93f3f7b0bb07711b49626e7940d6fe52aa9940ad86e8f7e74842e73189712129"}, + {file = "psutil-7.2.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d34d2ca888208eea2b5c68186841336a7f5e0b990edec929be909353a202768a"}, + {file = "psutil-7.2.1-cp314-cp314t-win_amd64.whl", hash = "sha256:2ceae842a78d1603753561132d5ad1b2f8a7979cb0c283f5b52fb4e6e14b1a79"}, + {file = "psutil-7.2.1-cp314-cp314t-win_arm64.whl", hash = "sha256:08a2f175e48a898c8eb8eace45ce01777f4785bc744c90aa2cc7f2fa5462a266"}, + {file = "psutil-7.2.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:b2e953fcfaedcfbc952b44744f22d16575d3aa78eb4f51ae74165b4e96e55f42"}, + {file = "psutil-7.2.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:05cc68dbb8c174828624062e73078e7e35406f4ca2d0866c272c2410d8ef06d1"}, + {file = "psutil-7.2.1-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e38404ca2bb30ed7267a46c02f06ff842e92da3bb8c5bfdadbd35a5722314d8"}, + {file = "psutil-7.2.1-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab2b98c9fc19f13f59628d94df5cc4cc4844bc572467d113a8b517d634e362c6"}, + {file = "psutil-7.2.1-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f78baafb38436d5a128f837fab2d92c276dfb48af01a240b861ae02b2413ada8"}, + {file = "psutil-7.2.1-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:99a4cd17a5fdd1f3d014396502daa70b5ec21bf4ffe38393e152f8e449757d67"}, + {file = "psutil-7.2.1-cp37-abi3-win_amd64.whl", hash = "sha256:b1b0671619343aa71c20ff9767eced0483e4fc9e1f489d50923738caf6a03c17"}, + {file = "psutil-7.2.1-cp37-abi3-win_arm64.whl", hash = "sha256:0d67c1822c355aa6f7314d92018fb4268a76668a536f133599b91edd48759442"}, + {file = "psutil-7.2.1.tar.gz", hash = "sha256:f7583aec590485b43ca601dd9cea0dcd65bd7bb21d30ef4ddbf4ea6b5ed1bdd3"}, ] [package.extras] -dev = ["abi3audit", "black", "check-manifest", "colorama ; os_name == \"nt\"", "coverage", "packaging", "pylint", "pyperf", "pypinfo", "pyreadline ; os_name == \"nt\"", "pytest", "pytest-cov", "pytest-instafail", "pytest-subtests", "pytest-xdist", "pywin32 ; os_name == \"nt\" and platform_python_implementation != \"PyPy\"", "requests", "rstcheck", "ruff", "setuptools", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "validate-pyproject[all]", "virtualenv", "vulture", "wheel", "wheel ; os_name == \"nt\" and platform_python_implementation != \"PyPy\"", "wmi ; os_name == \"nt\" and platform_python_implementation != \"PyPy\""] -test = ["pytest", "pytest-instafail", "pytest-subtests", "pytest-xdist", "pywin32 ; os_name == \"nt\" and platform_python_implementation != \"PyPy\"", "setuptools", "wheel ; os_name == \"nt\" and platform_python_implementation != \"PyPy\"", "wmi ; os_name == \"nt\" and platform_python_implementation != \"PyPy\""] +dev = ["abi3audit", "black", "check-manifest", "coverage", "packaging", "psleak", "pylint", "pyperf", "pypinfo", "pytest", "pytest-cov", "pytest-instafail", "pytest-xdist", "requests", "rstcheck", "ruff", "setuptools", "sphinx", "sphinx_rtd_theme", "toml-sort", "twine", "validate-pyproject[all]", "virtualenv", "vulture", "wheel"] +test = ["psleak", "pytest", "pytest-instafail", "pytest-xdist", "setuptools"] [[package]] name = "psycopg2-binary" @@ -1845,7 +1776,6 @@ version = "2.9.11" description = "psycopg2 - Python-PostgreSQL Database Adapter" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "psycopg2-binary-2.9.11.tar.gz", hash = "sha256:b6aed9e096bf63f9e75edf2581aa9a7e7186d97ab5c177aa6c87797cd591236c"}, {file = "psycopg2_binary-2.9.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d6fe6b47d0b42ce1c9f1fa3e35bb365011ca22e39db37074458f27921dca40f2"}, @@ -1922,7 +1852,6 @@ version = "2.20191221" description = "Get a public suffix for a domain name using the Public Suffix List. Forked from and using the same API as the publicsuffix package." optional = false python-versions = "*" -groups = ["main"] files = [ {file = "publicsuffix2-2.20191221-py2.py3-none-any.whl", hash = "sha256:786b5e36205b88758bd3518725ec8cfe7a8173f5269354641f581c6b80a99893"}, {file = "publicsuffix2-2.20191221.tar.gz", hash = "sha256:00f8cc31aa8d0d5592a5ced19cccba7de428ebca985db26ac852d920ddd6fe7b"}, @@ -1930,14 +1859,13 @@ files = [ [[package]] name = "pyasn1" -version = "0.6.1" +version = "0.6.2" description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ - {file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"}, - {file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"}, + {file = "pyasn1-0.6.2-py3-none-any.whl", hash = "sha256:1eb26d860996a18e9b6ed05e7aae0e9fc21619fcee6af91cca9bad4fbea224bf"}, + {file = "pyasn1-0.6.2.tar.gz", hash = "sha256:9b59a2b25ba7e4f8197db7686c09fb33e658b98339fadb826e9512629017833b"}, ] [[package]] @@ -1946,7 +1874,6 @@ version = "0.4.2" description = "A collection of ASN.1-based protocols modules" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a"}, {file = "pyasn1_modules-0.4.2.tar.gz", hash = "sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6"}, @@ -1957,15 +1884,13 @@ pyasn1 = ">=0.6.1,<0.7.0" [[package]] name = "pycparser" -version = "2.23" +version = "3.0" description = "C parser in Python" optional = false -python-versions = ">=3.8" -groups = ["main"] -markers = "implementation_name != \"PyPy\"" +python-versions = ">=3.10" files = [ - {file = "pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934"}, - {file = "pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2"}, + {file = "pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992"}, + {file = "pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29"}, ] [[package]] @@ -1974,8 +1899,6 @@ version = "2.1.0" description = "Python binding to windivert driver" optional = false python-versions = "*" -groups = ["main"] -markers = "sys_platform == \"win32\"" files = [ {file = "pydivert-2.1.0-py2.py3-none-any.whl", hash = "sha256:382db488e3c37c03ec9ec94e061a0b24334d78dbaeebb7d4e4d32ce4355d9da1"}, {file = "pydivert-2.1.0.tar.gz", hash = "sha256:f0e150f4ff591b78e35f514e319561dadff7f24a82186a171dd4d465483de5b4"}, @@ -1991,7 +1914,6 @@ version = "2.19.2" description = "Pygments is a syntax highlighting package written in Python." optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b"}, {file = "pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"}, @@ -2006,7 +1928,6 @@ version = "0.3.23" description = "Python wrapper for the ls-qpack QPACK library" optional = false python-versions = ">=3.10" -groups = ["main"] files = [ {file = "pylsqpack-0.3.23-cp310-abi3-macosx_10_9_x86_64.whl", hash = "sha256:978497811bb58cf7ae11c0e1d4cf9bdf6bccef77556d039ae1836b458cb235fc"}, {file = "pylsqpack-0.3.23-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:8a9e25c5a98a0959c6511aaf7d1a6ac0d6146be349a8c3c09fec2e5250cb2901"}, @@ -2024,39 +1945,36 @@ files = [ [[package]] name = "pynacl" -version = "1.6.1" +version = "1.6.2" description = "Python binding to the Networking and Cryptography (NaCl) library" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ - {file = "pynacl-1.6.1-cp314-cp314t-macosx_10_10_universal2.whl", hash = "sha256:7d7c09749450c385301a3c20dca967a525152ae4608c0a096fe8464bfc3df93d"}, - {file = "pynacl-1.6.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fc734c1696ffd49b40f7c1779c89ba908157c57345cf626be2e0719488a076d3"}, - {file = "pynacl-1.6.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3cd787ec1f5c155dc8ecf39b1333cfef41415dc96d392f1ce288b4fe970df489"}, - {file = "pynacl-1.6.1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b35d93ab2df03ecb3aa506be0d3c73609a51449ae0855c2e89c7ed44abde40b"}, - {file = "pynacl-1.6.1-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dece79aecbb8f4640a1adbb81e4aa3bfb0e98e99834884a80eb3f33c7c30e708"}, - {file = "pynacl-1.6.1-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:c2228054f04bf32d558fb89bb99f163a8197d5a9bf4efa13069a7fa8d4b93fc3"}, - {file = "pynacl-1.6.1-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:2b12f1b97346f177affcdfdc78875ff42637cb40dcf79484a97dae3448083a78"}, - {file = "pynacl-1.6.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e735c3a1bdfde3834503baf1a6d74d4a143920281cb724ba29fb84c9f49b9c48"}, - {file = "pynacl-1.6.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3384a454adf5d716a9fadcb5eb2e3e72cd49302d1374a60edc531c9957a9b014"}, - {file = "pynacl-1.6.1-cp314-cp314t-win32.whl", hash = "sha256:d8615ee34d01c8e0ab3f302dcdd7b32e2bcf698ba5f4809e7cc407c8cdea7717"}, - {file = "pynacl-1.6.1-cp314-cp314t-win_amd64.whl", hash = "sha256:5f5b35c1a266f8a9ad22525049280a600b19edd1f785bccd01ae838437dcf935"}, - {file = "pynacl-1.6.1-cp314-cp314t-win_arm64.whl", hash = "sha256:d984c91fe3494793b2a1fb1e91429539c6c28e9ec8209d26d25041ec599ccf63"}, - {file = "pynacl-1.6.1-cp38-abi3-macosx_10_10_universal2.whl", hash = "sha256:a6f9fd6d6639b1e81115c7f8ff16b8dedba1e8098d2756275d63d208b0e32021"}, - {file = "pynacl-1.6.1-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e49a3f3d0da9f79c1bec2aa013261ab9fa651c7da045d376bd306cf7c1792993"}, - {file = "pynacl-1.6.1-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7713f8977b5d25f54a811ec9efa2738ac592e846dd6e8a4d3f7578346a841078"}, - {file = "pynacl-1.6.1-cp38-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5a3becafc1ee2e5ea7f9abc642f56b82dcf5be69b961e782a96ea52b55d8a9fc"}, - {file = "pynacl-1.6.1-cp38-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4ce50d19f1566c391fedc8dc2f2f5be265ae214112ebe55315e41d1f36a7f0a9"}, - {file = "pynacl-1.6.1-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:543f869140f67d42b9b8d47f922552d7a967e6c116aad028c9bfc5f3f3b3a7b7"}, - {file = "pynacl-1.6.1-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:a2bb472458c7ca959aeeff8401b8efef329b0fc44a89d3775cffe8fad3398ad8"}, - {file = "pynacl-1.6.1-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:3206fa98737fdc66d59b8782cecc3d37d30aeec4593d1c8c145825a345bba0f0"}, - {file = "pynacl-1.6.1-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:53543b4f3d8acb344f75fd4d49f75e6572fce139f4bfb4815a9282296ff9f4c0"}, - {file = "pynacl-1.6.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:319de653ef84c4f04e045eb250e6101d23132372b0a61a7acf91bac0fda8e58c"}, - {file = "pynacl-1.6.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:262a8de6bba4aee8a66f5edf62c214b06647461c9b6b641f8cd0cb1e3b3196fe"}, - {file = "pynacl-1.6.1-cp38-abi3-win32.whl", hash = "sha256:9fd1a4eb03caf8a2fe27b515a998d26923adb9ddb68db78e35ca2875a3830dde"}, - {file = "pynacl-1.6.1-cp38-abi3-win_amd64.whl", hash = "sha256:a569a4069a7855f963940040f35e87d8bc084cb2d6347428d5ad20550a0a1a21"}, - {file = "pynacl-1.6.1-cp38-abi3-win_arm64.whl", hash = "sha256:5953e8b8cfadb10889a6e7bd0f53041a745d1b3d30111386a1bb37af171e6daf"}, - {file = "pynacl-1.6.1.tar.gz", hash = "sha256:8d361dac0309f2b6ad33b349a56cd163c98430d409fa503b10b70b3ad66eaa1d"}, + {file = "pynacl-1.6.2-cp314-cp314t-macosx_10_10_universal2.whl", hash = "sha256:622d7b07cc5c02c666795792931b50c91f3ce3c2649762efb1ef0d5684c81594"}, + {file = "pynacl-1.6.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d071c6a9a4c94d79eb665db4ce5cedc537faf74f2355e4d502591d850d3913c0"}, + {file = "pynacl-1.6.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fe9847ca47d287af41e82be1dd5e23023d3c31a951da134121ab02e42ac218c9"}, + {file = "pynacl-1.6.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:04316d1fc625d860b6c162fff704eb8426b1a8bcd3abacea11142cbd99a6b574"}, + {file = "pynacl-1.6.2-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:44081faff368d6c5553ccf55322ef2819abb40e25afaec7e740f159f74813634"}, + {file = "pynacl-1.6.2-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:a9f9932d8d2811ce1a8ffa79dcbdf3970e7355b5c8eb0c1a881a57e7f7d96e88"}, + {file = "pynacl-1.6.2-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:bc4a36b28dd72fb4845e5d8f9760610588a96d5a51f01d84d8c6ff9849968c14"}, + {file = "pynacl-1.6.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:3bffb6d0f6becacb6526f8f42adfb5efb26337056ee0831fb9a7044d1a964444"}, + {file = "pynacl-1.6.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:2fef529ef3ee487ad8113d287a593fa26f48ee3620d92ecc6f1d09ea38e0709b"}, + {file = "pynacl-1.6.2-cp314-cp314t-win32.whl", hash = "sha256:a84bf1c20339d06dc0c85d9aea9637a24f718f375d861b2668b2f9f96fa51145"}, + {file = "pynacl-1.6.2-cp314-cp314t-win_amd64.whl", hash = "sha256:320ef68a41c87547c91a8b58903c9caa641ab01e8512ce291085b5fe2fcb7590"}, + {file = "pynacl-1.6.2-cp314-cp314t-win_arm64.whl", hash = "sha256:d29bfe37e20e015a7d8b23cfc8bd6aa7909c92a1b8f41ee416bbb3e79ef182b2"}, + {file = "pynacl-1.6.2-cp38-abi3-macosx_10_10_universal2.whl", hash = "sha256:c949ea47e4206af7c8f604b8278093b674f7c79ed0d4719cc836902bf4517465"}, + {file = "pynacl-1.6.2-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8845c0631c0be43abdd865511c41eab235e0be69c81dc66a50911594198679b0"}, + {file = "pynacl-1.6.2-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:22de65bb9010a725b0dac248f353bb072969c94fa8d6b1f34b87d7953cf7bbe4"}, + {file = "pynacl-1.6.2-cp38-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:46065496ab748469cdd999246d17e301b2c24ae2fdf739132e580a0e94c94a87"}, + {file = "pynacl-1.6.2-cp38-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8a66d6fb6ae7661c58995f9c6435bda2b1e68b54b598a6a10247bfcdadac996c"}, + {file = "pynacl-1.6.2-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:26bfcd00dcf2cf160f122186af731ae30ab120c18e8375684ec2670dccd28130"}, + {file = "pynacl-1.6.2-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:c8a231e36ec2cab018c4ad4358c386e36eede0319a0c41fed24f840b1dac59f6"}, + {file = "pynacl-1.6.2-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:68be3a09455743ff9505491220b64440ced8973fe930f270c8e07ccfa25b1f9e"}, + {file = "pynacl-1.6.2-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:8b097553b380236d51ed11356c953bf8ce36a29a3e596e934ecabe76c985a577"}, + {file = "pynacl-1.6.2-cp38-abi3-win32.whl", hash = "sha256:5811c72b473b2f38f7e2a3dc4f8642e3a3e9b5e7317266e4ced1fba85cae41aa"}, + {file = "pynacl-1.6.2-cp38-abi3-win_amd64.whl", hash = "sha256:62985f233210dee6548c223301b6c25440852e13d59a8b81490203c3227c5ba0"}, + {file = "pynacl-1.6.2-cp38-abi3-win_arm64.whl", hash = "sha256:834a43af110f743a754448463e8fd61259cd4ab5bbedcf70f9dabad1d28a394c"}, + {file = "pynacl-1.6.2.tar.gz", hash = "sha256:018494d6d696ae03c7e656e5e74cdfd8ea1326962cc401bcf018f1ed8436811c"}, ] [package.dependencies] @@ -2072,7 +1990,6 @@ version = "25.1.0" description = "Python wrapper module around the OpenSSL library" optional = false python-versions = ">=3.7" -groups = ["main"] files = [ {file = "pyopenssl-25.1.0-py3-none-any.whl", hash = "sha256:2b11f239acc47ac2e5aca04fd7fa829800aeee22a2eb30d744572a157bd8a1ab"}, {file = "pyopenssl-25.1.0.tar.gz", hash = "sha256:8d031884482e0c67ee92bf9a4d8cceb08d92aba7136432ffb0703c5280fc205b"}, @@ -2092,7 +2009,6 @@ version = "3.2.3" description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "pyparsing-3.2.3-py3-none-any.whl", hash = "sha256:a749938e02d6fd0b59b356ca504a24982314bb090c383e3cf201c95ef7e2bfcf"}, {file = "pyparsing-3.2.3.tar.gz", hash = "sha256:b9c13f1ab8b3b542f72e28f634bad4de758ab3ce4546e4301970ad6fa77c38be"}, @@ -2107,7 +2023,6 @@ version = "1.9.0" description = "A cross-platform clipboard module for Python. (Only handles plain text for now.)" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "pyperclip-1.9.0.tar.gz", hash = "sha256:b7de0142ddc81bfc5c7507eea19da920b92252b548b96186caf94a5e2527d310"}, ] @@ -2118,7 +2033,6 @@ version = "1.16.0" description = "Saml Python Toolkit. Add SAML support to your Python software using this library" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "python3-saml-1.16.0.tar.gz", hash = "sha256:97c9669aecabc283c6e5fb4eb264f446b6e006f5267d01c9734f9d8bffdac133"}, {file = "python3_saml-1.16.0-py2-none-any.whl", hash = "sha256:c49097863c278ff669a337a96c46dc1f25d16307b4bb2679d2d1733cc4f5176a"}, @@ -2139,7 +2053,6 @@ version = "6.0.3" description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "PyYAML-6.0.3-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:c2514fceb77bc5e7a2f7adfaa1feb2fb311607c9cb518dbc378688ec73d8292f"}, {file = "PyYAML-6.0.3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c57bb8c96f6d1808c030b1687b9b5fb476abaa47f0db9c0101f5e9f394e97f4"}, @@ -2222,7 +2135,6 @@ version = "2.32.5" description = "Python HTTP for Humans." optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6"}, {file = "requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"}, @@ -2244,7 +2156,6 @@ version = "3.0.1" description = "File transport adapter for Requests" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "requests_file-3.0.1-py2.py3-none-any.whl", hash = "sha256:d0f5eb94353986d998f80ac63c7f146a307728be051d4d1cd390dbdb59c10fa2"}, {file = "requests_file-3.0.1.tar.gz", hash = "sha256:f14243d7796c588f3521bd423c5dea2ee4cc730e54a3cac9574d78aca1272576"}, @@ -2259,7 +2170,6 @@ version = "4.9.1" description = "Pure-Python RSA implementation" optional = false python-versions = "<4,>=3.6" -groups = ["main"] files = [ {file = "rsa-4.9.1-py3-none-any.whl", hash = "sha256:68635866661c6836b8d39430f97a996acbd61bfa49406748ea243539fe239762"}, {file = "rsa-4.9.1.tar.gz", hash = "sha256:e7bdbfdb5497da4c07dfd35530e1a902659db6ff241e39d9953cad06ebd0ae75"}, @@ -2274,7 +2184,6 @@ version = "0.18.15" description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "ruamel.yaml-0.18.15-py3-none-any.whl", hash = "sha256:148f6488d698b7a5eded5ea793a025308b25eca97208181b6a026037f391f701"}, {file = "ruamel.yaml-0.18.15.tar.gz", hash = "sha256:dbfca74b018c4c3fba0b9cc9ee33e53c371194a9000e694995e620490fd40700"}, @@ -2293,8 +2202,6 @@ version = "0.2.15" description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" optional = false python-versions = ">=3.9" -groups = ["main"] -markers = "python_version < \"3.14\" and platform_python_implementation == \"CPython\"" files = [ {file = "ruamel_yaml_clib-0.2.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:88eea8baf72f0ccf232c22124d122a7f26e8a24110a0273d9bcddcb0f7e1fa03"}, {file = "ruamel_yaml_clib-0.2.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9b6f7d74d094d1f3a4e157278da97752f16ee230080ae331fcc219056ca54f77"}, @@ -2365,7 +2272,6 @@ version = "24.2.0" description = "Service identity verification for pyOpenSSL & cryptography." optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "service_identity-24.2.0-py3-none-any.whl", hash = "sha256:6b047fbd8a84fd0bb0d55ebce4031e400562b9196e1e0d3e0fe2b8a59f6d4a85"}, {file = "service_identity-24.2.0.tar.gz", hash = "sha256:b8683ba13f0d39c6cd5d625d2c5f65421d6d707b013b375c355751557cbe8e09"}, @@ -2390,7 +2296,6 @@ version = "0.6.3" description = "Run multiple subprocesses asynchronous/in parallel with streamed output/non-blocking reading. Also various tools to replace shell scripts." optional = false python-versions = ">=3.6" -groups = ["main"] files = [ {file = "shelljob-0.6.3-py3-none-any.whl", hash = "sha256:1a37d1c36631a4839be7424910c293b0163b06bd74eaf3daf6cfcb5eabd95286"}, ] @@ -2401,7 +2306,6 @@ version = "3.20.2" description = "Simple, fast, extensible JSON encoder/decoder for Python" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.5" -groups = ["main"] files = [ {file = "simplejson-3.20.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:11847093fd36e3f5a4f595ff0506286c54885f8ad2d921dfb64a85bce67f72c4"}, {file = "simplejson-3.20.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:4d291911d23b1ab8eb3241204dd54e3ec60ddcd74dfcb576939d3df327205865"}, @@ -2521,7 +2425,6 @@ version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -groups = ["main"] files = [ {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, @@ -2533,7 +2436,6 @@ version = "2.4.0" description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0"}, {file = "sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88"}, @@ -2541,26 +2443,24 @@ files = [ [[package]] name = "soupsieve" -version = "2.8" +version = "2.8.3" description = "A modern CSS selector implementation for Beautiful Soup." optional = false python-versions = ">=3.9" -groups = ["main"] files = [ - {file = "soupsieve-2.8-py3-none-any.whl", hash = "sha256:0cc76456a30e20f5d7f2e14a98a4ae2ee4e5abdc7c5ea0aafe795f344bc7984c"}, - {file = "soupsieve-2.8.tar.gz", hash = "sha256:e2dd4a40a628cb5f28f6d4b0db8800b8f581b65bb380b97de22ba5ca8d72572f"}, + {file = "soupsieve-2.8.3-py3-none-any.whl", hash = "sha256:ed64f2ba4eebeab06cc4962affce381647455978ffc1e36bb79a545b91f45a95"}, + {file = "soupsieve-2.8.3.tar.gz", hash = "sha256:3267f1eeea4251fb42728b6dfb746edc9acaffc4a45b27e19450b676586e8349"}, ] [[package]] name = "sqlparse" -version = "0.5.4" +version = "0.5.5" description = "A non-validating SQL parser." optional = false python-versions = ">=3.8" -groups = ["main"] files = [ - {file = "sqlparse-0.5.4-py3-none-any.whl", hash = "sha256:99a9f0314977b76d776a0fcb8554de91b9bb8a18560631d6bc48721d07023dcb"}, - {file = "sqlparse-0.5.4.tar.gz", hash = "sha256:4396a7d3cf1cd679c1be976cf3dc6e0a51d0111e87787e7a8d780e7d5a998f9e"}, + {file = "sqlparse-0.5.5-py3-none-any.whl", hash = "sha256:12a08b3bf3eec877c519589833aed092e2444e68240a3577e8e26148acc7b1ba"}, + {file = "sqlparse-0.5.5.tar.gz", hash = "sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e"}, ] [package.extras] @@ -2573,7 +2473,6 @@ version = "0.3.4" description = "Python SVG editor" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "svgutils-0.3.4-py3-none-any.whl", hash = "sha256:4d08524a08126553c1a9bf2639616cf31290adea6fd235a3eb67d77c748abc00"}, {file = "svgutils-0.3.4.tar.gz", hash = "sha256:9ef48f44cb1d460a7747dd02694200fda25eb9faf6dea392118def2695e0e053"}, @@ -2584,14 +2483,13 @@ lxml = "*" [[package]] name = "tldextract" -version = "5.3.0" +version = "5.3.1" description = "Accurately separates a URL's subdomain, domain, and public suffix, using the Public Suffix List (PSL). By default, this includes the public ICANN TLDs and their exceptions. You can optionally support the Public Suffix List's private domains as well." optional = false -python-versions = ">=3.9" -groups = ["main"] +python-versions = ">=3.10" files = [ - {file = "tldextract-5.3.0-py3-none-any.whl", hash = "sha256:f70f31d10b55c83993f55e91ecb7c5d84532a8972f22ec578ecfbe5ea2292db2"}, - {file = "tldextract-5.3.0.tar.gz", hash = "sha256:b3d2b70a1594a0ecfa6967d57251527d58e00bb5a91a74387baa0d87a0678609"}, + {file = "tldextract-5.3.1-py3-none-any.whl", hash = "sha256:6bfe36d518de569c572062b788e16a659ccaceffc486d243af0484e8ecf432d9"}, + {file = "tldextract-5.3.1.tar.gz", hash = "sha256:a72756ca170b2510315076383ea2993478f7da6f897eef1f4a5400735d5057fb"}, ] [package.dependencies] @@ -2610,7 +2508,6 @@ version = "6.5.2" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "tornado-6.5.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6"}, {file = "tornado-6.5.2-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef"}, @@ -2632,33 +2529,17 @@ version = "4.14.0" description = "Backported and Experimental Type Hints for Python 3.9+" optional = false python-versions = ">=3.9" -groups = ["main"] -markers = "python_version < \"3.14\"" files = [ {file = "typing_extensions-4.14.0-py3-none-any.whl", hash = "sha256:a1514509136dd0b477638fc68d6a91497af5076466ad0fa6c338e44e359944af"}, {file = "typing_extensions-4.14.0.tar.gz", hash = "sha256:8676b788e32f02ab42d9e7c61324048ae4c6d844a399eebace3d4979d75ceef4"}, ] -[[package]] -name = "typing-extensions" -version = "4.15.0" -description = "Backported and Experimental Type Hints for Python 3.9+" -optional = false -python-versions = ">=3.9" -groups = ["main"] -markers = "python_version >= \"3.14\"" -files = [ - {file = "typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"}, - {file = "typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"}, -] - [[package]] name = "tzdata" version = "2023.4" description = "Provider of IANA time zone data" optional = false python-versions = ">=2" -groups = ["main"] files = [ {file = "tzdata-2023.4-py2.py3-none-any.whl", hash = "sha256:aa3ace4329eeacda5b7beb7ea08ece826c28d761cda36e747cfbf97996d39bf3"}, {file = "tzdata-2023.4.tar.gz", hash = "sha256:dd54c94f294765522c77399649b4fefd95522479a664a0cec87f41bebc6148c9"}, @@ -2666,21 +2547,20 @@ files = [ [[package]] name = "urllib3" -version = "2.6.0" +version = "2.6.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.9" -groups = ["main"] files = [ - {file = "urllib3-2.6.0-py3-none-any.whl", hash = "sha256:c90f7a39f716c572c4e3e58509581ebd83f9b59cced005b7db7ad2d22b0db99f"}, - {file = "urllib3-2.6.0.tar.gz", hash = "sha256:cb9bcef5a4b345d5da5d145dc3e30834f58e8018828cbc724d30b4cb7d4d49f1"}, + {file = "urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4"}, + {file = "urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed"}, ] [package.extras] -brotli = ["brotli (>=1.2.0) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=1.2.0.0) ; platform_python_implementation != \"CPython\""] +brotli = ["brotli (>=1.2.0)", "brotlicffi (>=1.2.0.0)"] h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] +zstd = ["backports-zstd (>=1.0.0)"] [[package]] name = "urwid" @@ -2688,7 +2568,6 @@ version = "2.6.16" description = "A full-featured console (xterm et al.) user interface library" optional = false python-versions = ">3.7" -groups = ["main"] files = [ {file = "urwid-2.6.16-py3-none-any.whl", hash = "sha256:de14896c6df9eb759ed1fd93e0384a5279e51e0dde8f621e4083f7a8368c0797"}, {file = "urwid-2.6.16.tar.gz", hash = "sha256:93ad239939e44c385e64aa00027878b9e5c486d59e855ec8ab5b1e1adcdb32a2"}, @@ -2699,7 +2578,7 @@ typing-extensions = "*" wcwidth = "*" [package.extras] -curses = ["windows-curses ; sys_platform == \"win32\""] +curses = ["windows-curses"] glib = ["PyGObject"] lcd = ["pyserial"] serial = ["pyserial"] @@ -2714,8 +2593,6 @@ version = "3.0.2" description = "Waitress WSGI server" optional = false python-versions = ">=3.9.0" -groups = ["main"] -markers = "sys_platform == \"win32\"" files = [ {file = "waitress-3.0.2-py3-none-any.whl", hash = "sha256:c56d67fd6e87c2ee598b76abdd4e96cfad1f24cacdea5078d382b1f9d7b5ed2e"}, {file = "waitress-3.0.2.tar.gz", hash = "sha256:682aaaf2af0c44ada4abfb70ded36393f0e307f4ab9456a215ce0020baefc31f"}, @@ -2727,14 +2604,13 @@ testing = ["coverage (>=7.6.0)", "pytest", "pytest-cov"] [[package]] name = "wcwidth" -version = "0.2.14" +version = "0.4.0" description = "Measures the displayed width of unicode strings in a terminal" optional = false -python-versions = ">=3.6" -groups = ["main"] +python-versions = ">=3.8" files = [ - {file = "wcwidth-0.2.14-py2.py3-none-any.whl", hash = "sha256:a7bb560c8aee30f9957e5f9895805edd20602f2d7f720186dfd906e82b4982e1"}, - {file = "wcwidth-0.2.14.tar.gz", hash = "sha256:4d478375d31bc5395a3c55c40ccdf3354688364cd61c4f6adacaa9215d0b3605"}, + {file = "wcwidth-0.4.0-py3-none-any.whl", hash = "sha256:8af2c81174b3aa17adf05058c543c267e4e5b6767a28e31a673a658c1d766783"}, + {file = "wcwidth-0.4.0.tar.gz", hash = "sha256:46478e02cf7149ba150fb93c39880623ee7e5181c64eda167b6a1de51b7a7ba1"}, ] [[package]] @@ -2743,7 +2619,6 @@ version = "0.5.1" description = "Character encoding aliases for legacy web content" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, @@ -2755,7 +2630,6 @@ version = "13.1" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" optional = false python-versions = ">=3.8" -groups = ["main"] files = [ {file = "websockets-13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f48c749857f8fb598fb890a75f540e3221d0976ed0bf879cf3c7eef34151acee"}, {file = "websockets-13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c7e72ce6bda6fb9409cc1e8164dd41d7c91466fb599eb047cfda72fe758a34a7"}, @@ -2847,14 +2721,13 @@ files = [ [[package]] name = "werkzeug" -version = "3.1.4" +version = "3.1.5" description = "The comprehensive WSGI web application library." optional = false python-versions = ">=3.9" -groups = ["main"] files = [ - {file = "werkzeug-3.1.4-py3-none-any.whl", hash = "sha256:2ad50fb9ed09cc3af22c54698351027ace879a0b60a3b5edf5730b2f7d876905"}, - {file = "werkzeug-3.1.4.tar.gz", hash = "sha256:cd3cd98b1b92dc3b7b3995038826c68097dcb16f9baa63abe35f20eafeb9fe5e"}, + {file = "werkzeug-3.1.5-py3-none-any.whl", hash = "sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc"}, + {file = "werkzeug-3.1.5.tar.gz", hash = "sha256:6a548b0e88955dd07ccb25539d7d0cc97417ee9e179677d22c7041c8f078ce67"}, ] [package.dependencies] @@ -2869,7 +2742,6 @@ version = "6.11.0" description = "Radically simplified static file serving for WSGI applications" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "whitenoise-6.11.0-py3-none-any.whl", hash = "sha256:b2aeb45950597236f53b5342b3121c5de69c8da0109362aee506ce88e022d258"}, {file = "whitenoise-6.11.0.tar.gz", hash = "sha256:0f5bfce6061ae6611cd9396a8231e088722e4fc67bc13a111be74c738d99375f"}, @@ -2884,7 +2756,6 @@ version = "1.2.0" description = "WebSockets state-machine based protocol implementation" optional = false python-versions = ">=3.7.0" -groups = ["main"] files = [ {file = "wsproto-1.2.0-py3-none-any.whl", hash = "sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736"}, {file = "wsproto-1.2.0.tar.gz", hash = "sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065"}, @@ -2899,7 +2770,6 @@ version = "1.3.17" description = "Python bindings for the XML Security Library" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "xmlsec-1.3.17-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:00d43d4f68ac6b11f6e1e69bcb389495f54da77bf1168b4de08f4a7785e47bbb"}, {file = "xmlsec-1.3.17-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ea2d65749c4c6a35a3ba138debda2f910713a9f4f06b4647510c184c284d7c62"}, @@ -2967,7 +2837,6 @@ version = "1.0.7" description = "Python interface for YARA" optional = false python-versions = "*" -groups = ["main"] files = [ {file = "yara_python_dex-1.0.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:69ea91f4cda18cf99a220507d6492eeee1531335d7551dbd21e2138e6551f348"}, {file = "yara_python_dex-1.0.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ddfd778478f5ed694010b904af9e4be38f9f2dfe19ef7f3fe5d7877e024a8692"}, @@ -3081,7 +2950,6 @@ version = "0.24.0" description = "Zstandard bindings for Python" optional = false python-versions = ">=3.9" -groups = ["main"] files = [ {file = "zstandard-0.24.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:af1394c2c5febc44e0bbf0fc6428263fa928b50d1b1982ce1d870dc793a8e5f4"}, {file = "zstandard-0.24.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5e941654cef13a1d53634ec30933722eda11f44f99e1d0bc62bbce3387580d50"}, @@ -3185,9 +3053,9 @@ files = [ ] [package.extras] -cffi = ["cffi (>=1.17) ; python_version >= \"3.13\" and platform_python_implementation != \"PyPy\""] +cffi = ["cffi (>=1.17)"] [metadata] -lock-version = "2.1" +lock-version = "2.0" python-versions = "^3.12" content-hash = "fcf4266665125a20030128be49df0bf67259487376a12af5ec42453ece18c512" diff --git a/pyproject.toml b/pyproject.toml index 927df5c2..3647907d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "mobsf" -version = "4.4.4" +version = "4.4.5" description = "Mobile Security Framework (MobSF) is an automated, all-in-one mobile application (Android/iOS/Windows) pen-testing, malware analysis and security assessment framework capable of performing static and dynamic analysis." keywords = ["mobsf", "mobile security framework", "mobile security", "security tool", "static analysis", "dynamic analysis", "malware analysis"] authors = ["Ajin Abraham "]