{"schema_version":"2","scorer_version":"0.1.0","scoring_version":"prov-5+qual-2+sec-2","generated_at":"2026-11-14T14:52:01.566984Z","repo":{"ref":{"host":"github.com","owner":"Qurclinc","name":"LABs"},"default_branch":"master","clone_url":"https://github.com/Qurclinc/LABs.git","html_url":"https://github.com/Qurclinc/LABs","description":null,"stars":1,"forks":0,"is_fork":false,"is_archived":false,"is_private":false,"size_kb":7127,"primary_language":"Python","license_spdx":null,"created_at":"2024-10-07T10:05:53Z","pushed_at":"2026-10-07T15:36:02Z","security_policy_url":null,"distribution":{"owner_created_at":"2020-04-05T18:58:28Z","owner_type":"User","release_assets":[]}},"commit_sha":"c3840a408f1f3fd352c359f3932954d5be80c9eb","profile":{"lines_by_language":{"Python":18275,"C++":2147,"Go":1601,"C":1235,"TypeScript":984,"Java":610,"Shell":494,"JavaScript":187,"C#":118,"PHP":38},"files_by_category":{"source":364,"binary":95,"other":73,"docs":61,"config":41,"generated":3,"oversized":1},"source_lines":25689,"test_lines":0},"pillars":{"ai_provenance":{"score":0.0,"confidence":0.51,"coverage":1.0,"label":"possible","breakdown":{"attributed_share":0.0,"suspected_share":0.3084,"estimated_share":0.0,"ai_artifacts":0.0,"flagged_work_units":1.0,"flagged_releases":null,"style_index":0.876},"summary":"Weak signals consistent with AI-assisted development."},"quality":{"score":21.9,"confidence":0.9,"coverage":1.0,"label":"poor","breakdown":{"complexity":57.6,"duplication":16.4,"lint":23.8,"testing":0.0,"docs":0.0,"type_safety":43.1,"process":null},"summary":"Code quality is poor: test-to-source ratio 0.00, no CI test run detected; 18% of function code in complex or long functions; 30% duplicated lines. Weakest area: testing."},"security":{"score":53.5,"confidence":0.85,"coverage":1.0,"label":"weak","breakdown":{"secrets":100.0,"sast":75.4,"dependencies":0.2,"ci_actions":null,"posture":0.0,"scorecard":null},"summary":"Security posture is weak: 281 known vulnerabilities in 54 dependencies; 10 high-severity SAST findings. Weakest area: posture."}},"analyzer_results":[{"analyzer":"sec-scorecard","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":"no published OpenSSF Scorecard result for this repo"},{"analyzer":"sec-registry","pillar":"security","status":"ok","tool_version":null,"metrics":{"declared":97.0,"checked":97.0,"missing":0.0,"recent":0.0,"lookup_errors":0.0},"findings":[],"evidence":[],"data":{"phantom":false},"error":null},{"analyzer":"ai-attribution","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"commits":43.0,"attributed_commits":0.0,"attributed_commit_share":0.0,"effective_loc":26162.0,"attributed_loc":0.0,"attributed_loc_share":0.0,"tools_detected":0.0},"findings":[],"evidence":[],"data":{"attributed_loc_by_commit":{},"tools":{},"monthly":{"2025-11":{"loc":8014,"attributed_loc":0},"2025-12":{"loc":8661,"attributed_loc":0},"2026-02":{"loc":662,"attributed_loc":0},"2026-03":{"loc":352,"attributed_loc":0},"2026-04":{"loc":466,"attributed_loc":0},"2026-05":{"loc":5351,"attributed_loc":0},"2026-09":{"loc":1621,"attributed_loc":0},"2026-10":{"loc":1035,"attributed_loc":0}}},"error":null},{"analyzer":"ai-artifacts","pillar":"ai_provenance","status":"ok","tool_version":"signatures-v1","metrics":{"artifacts":0.0,"workflow_agents":0.0,"tools_configured":0.0},"findings":[],"evidence":[],"data":{"artifacts":[],"workflows":[],"tools":[]},"error":null},{"analyzer":"ai-velocity","pillar":"ai_provenance","status":"ok","tool_version":"prov-4","metrics":{"work_units":32.0,"flagged_units":1.0,"pre_ai_era_bursts":0.0,"pre_ai_era_measured_loc":0.0,"pre_ai_era_burst_loc":0.0,"measured_loc":19368.0,"flagged_loc":8069.0,"flagged_loc_share":0.4166150351094589,"max_loc_per_hour":2017.25,"median_loc_per_hour":114.58885941644562,"pr_timed_units":0.0,"excluded_import_loc":6794.0},"findings":[],"evidence":[{"kind":"velocity-burst","description":"8,069 lines of first-party code in ~4.0h (2,017 lines/hour, 1 commit session)","ref":"586bd3ed6e0eccbd1f86611f1d504684c737f82f","url":"https://github.com/Qurclinc/LABs/commit/586bd3ed6e0eccbd1f86611f1d504684c737f82f","weight":0.6}],"data":{"flagged_loc_by_commit":{"586bd3ed6e0eccbd1f86611f1d504684c737f82f":8069},"excluded_import_commits":["d433bb25fb375c784f8f0f61b25b8d0fdd148460"]},"error":null},{"analyzer":"ai-release-velocity","pillar":"ai_provenance","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"ai-stylometry","pillar":"ai_provenance","status":"ok","tool_version":null,"metrics":{"lines_scanned":25689.0,"index":0.876,"count:narrated_steps":0.0,"per_kloc:narrated_steps":0.0,"files:narrated_steps":0.0,"count:placeholder":0.0,"per_kloc:placeholder":0.0,"files:placeholder":0.0,"count:emoji_in_code":45.0,"per_kloc:emoji_in_code":1.752,"files:emoji_in_code":7.0,"count:assistant_voice":0.0,"per_kloc:assistant_voice":0.0,"files:assistant_voice":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-secrets","pillar":"security","status":"ok","tool_version":"gitleaks 8.30.1","metrics":{"secrets_current":0.0,"secrets_history":0.0,"secrets_nonprod":0.0,"secrets_low_confidence":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-sast","pillar":"security","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":31.0,"findings_high":10.0,"findings_medium":10.0,"findings_low":11.0,"weighted_findings":20.762,"scanned_lines":25689.0,"parse_errors":3.0},"findings":[{"rule_id":"opengrep/dockerfile.security.missing-user","severity":"high","message":"By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'. [confidence medium]","path":"APR/lab7/ssh-task/Dockerfile","line":11,"fingerprint":"dockerfile.security.missing-user:APR/lab7/ssh-task/Dockerfile:11"},{"rule_id":"opengrep/dockerfile.security.missing-user","severity":"high","message":"By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'. [confidence medium]","path":"APR/lab7/test-web/Dockerfile","line":11,"fingerprint":"dockerfile.security.missing-user:APR/lab7/test-web/Dockerfile:11"},{"rule_id":"opengrep/dockerfile.security.last-user-is-root","severity":"high","message":"The last user in the container is 'root'. This is a security hazard because if an attacker gains control of the container they will have root access. Switch back to another user after running commands as 'root'. [confidence medium]","path":"APR/lab9/Dockerfile","line":24,"fingerprint":"dockerfile.security.last-user-is-root:APR/lab9/Dockerfile:24"},{"rule_id":"opengrep/python.requests.security.disabled-cert-validation","severity":"high","message":"Certificate verification has been explicitly disabled. This permits insecure connections to insecure servers. Re-enable certification validation. [confidence low]","path":"APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py","line":203,"fingerprint":"python.requests.security.disabled-cert-validation:APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py:203"},{"rule_id":"opengrep/python.requests.security.disabled-cert-validation","severity":"high","message":"Certificate verification has been explicitly disabled. This permits insecure connections to insecure servers. Re-enable certification validation. [confidence low]","path":"APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py","line":214,"fingerprint":"python.requests.security.disabled-cert-validation:APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py:214"},{"rule_id":"opengrep/python.requests.security.disabled-cert-validation","severity":"high","message":"Certificate verification has been explicitly disabled. This permits insecure connections to insecure servers. Re-enable certification validation. [confidence low]","path":"APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py","line":218,"fingerprint":"python.requests.security.disabled-cert-validation:APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py:218"},{"rule_id":"opengrep/python.requests.security.disabled-cert-validation","severity":"high","message":"Certificate verification has been explicitly disabled. This permits insecure connections to insecure servers. Re-enable certification validation. [confidence low]","path":"APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py","line":220,"fingerprint":"python.requests.security.disabled-cert-validation:APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py:220"},{"rule_id":"opengrep/dockerfile.security.missing-user-entrypoint","severity":"high","message":"By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'. [confidence medium]","path":"Crypto/lab1/backend/Dockerfile","line":13,"fingerprint":"dockerfile.security.missing-user-entrypoint:Crypto/lab1/backend/Dockerfile:13"},{"rule_id":"opengrep/dockerfile.security.missing-user","severity":"high","message":"By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'. [confidence medium]","path":"Crypto/lab5/backend/Dockerfile","line":27,"fingerprint":"dockerfile.security.missing-user:Crypto/lab5/backend/Dockerfile:27"},{"rule_id":"opengrep/dockerfile.security.missing-user","severity":"high","message":"By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'. [confidence medium]","path":"Crypto/lab5/frontend/Dockerfile","line":19,"fingerprint":"dockerfile.security.missing-user:Crypto/lab5/frontend/Dockerfile:19"},{"rule_id":"opengrep/c.lang.security.insecure-use-scanf-fn","severity":"medium","message":"Avoid using 'scanf()'. This function, when used improperly, does not consider buffer boundaries and can lead to buffer overflows. Use 'fgets()' instead for reading input. [confidence low]","path":"APR/lab6/task1/main.c","line":7,"fingerprint":"c.lang.security.insecure-use-scanf-fn:APR/lab6/task1/main.c:7"},{"rule_id":"opengrep/c.lang.security.insecure-use-scanf-fn","severity":"medium","message":"Avoid using 'scanf()'. This function, when used improperly, does not consider buffer boundaries and can lead to buffer overflows. Use 'fgets()' instead for reading input. [confidence low]","path":"APR/lab6/task1/main_fixed.c","line":7,"fingerprint":"c.lang.security.insecure-use-scanf-fn:APR/lab6/task1/main_fixed.c:7"},{"rule_id":"opengrep/python.flask.security.audit.avoid_app_run_with_bad_host","severity":"medium","message":"Running flask app with host 0.0.0.0 could expose the server publicly. [confidence high]","path":"APR/lab7/test-web/main.py","line":30,"fingerprint":"python.flask.security.audit.avoid_app_run_with_bad_host:APR/lab7/test-web/main.py:30"},{"rule_id":"opengrep/python.flask.security.audit.debug-enabled","severity":"medium","message":"Detected Flask app with debug=True. Do not deploy to production with this flag enabled as it will leak sensitive information. Instead, consider using Flask configuration variables or setting 'debug' using system environment variables. [confidence high]","path":"APR/lab7/test-web/main.py","line":30,"fingerprint":"python.flask.security.audit.debug-enabled:APR/lab7/test-web/main.py:30"},{"rule_id":"opengrep/python.django.security.django-no-csrf-token","severity":"medium","message":"Manually-created forms in django templates should specify a csrf_token to prevent CSRF attacks. [confidence medium]","path":"APR/lab7/test-web/templates/login.html","line":13,"fingerprint":"python.django.security.django-no-csrf-token:APR/lab7/test-web/templates/login.html:13"},{"rule_id":"opengrep/python.django.security.django-no-csrf-token","severity":"medium","message":"Manually-created forms in django templates should specify a csrf_token to prevent CSRF attacks. [confidence medium]","path":"APR/lab7/test-web/templates/register.html","line":13,"fingerprint":"python.django.security.django-no-csrf-token:APR/lab7/test-web/templates/register.html:13"},{"rule_id":"opengrep/python.lang.security.insecure-hash-algorithm-md5","severity":"medium","message":"Detected MD5 hash algorithm which is considered insecure. MD5 is not collision resistant and is therefore not suitable as a cryptographic signature. Use SHA256 or SHA3 instead. [confidence medium]","path":"APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py","line":59,"fingerprint":"python.lang.security.insecure-hash-algorithm-md5:APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py:59"},{"rule_id":"opengrep/go.lang.security.audit.crypto.math-random-used","severity":"medium","message":"Do not use `math/rand`. Use `crypto/rand` instead. [confidence medium]","path":"Crypto/lab5/backend/api/utils.go","line":6,"fingerprint":"go.lang.security.audit.crypto.math-random-used:Crypto/lab5/backend/api/utils.go:6"},{"rule_id":"opengrep/python.lang.security.audit.eval-detected","severity":"medium","message":"Detected the use of eval(). eval() can be dangerous if used to evaluate dynamic content. If this content can be input from outside the program, this may be a code injection vulnerability. Ensure evaluated content is not definable by external sources. [confidence low]","path":"Crypto/lab9/main.py","line":29,"fingerprint":"python.lang.security.audit.eval-detected:Crypto/lab9/main.py:29"},{"rule_id":"opengrep/java.lang.security.audit.crypto.weak-random","severity":"medium","message":"Detected use of the functions `Math.random()` or `java.util.Random()`. These are both not cryptographically strong random number generators (RNGs). If you are using these RNGs to create passwords or secret tokens, use `java.security.SecureRandom` instead. [confidence low]","path":"Programming Methods/lab5/Task2.java","line":16,"fingerprint":"java.lang.security.audit.crypto.weak-random:Programming Methods/lab5/Task2.java:16"},{"rule_id":"opengrep/python.lang.security.audit.insecure-transport.requests.request-with-http","severity":"low","message":"Detected a request using 'http://'. This request will be unencrypted, and attackers could listen into traffic on the network and be able to obtain sensitive information. Use 'https://' instead. [confidence medium]","path":"Crypto/lab5/test.py","line":17,"fingerprint":"python.lang.security.audit.insecure-transport.requests.request-with-http:Crypto/lab5/test.py:17"},{"rule_id":"opengrep/python.lang.security.audit.insecure-transport.requests.request-with-http","severity":"low","message":"Detected a request using 'http://'. This request will be unencrypted, and attackers could listen into traffic on the network and be able to obtain sensitive information. Use 'https://' instead. [confidence medium]","path":"Crypto/lab5/test.py","line":20,"fingerprint":"python.lang.security.audit.insecure-transport.requests.request-with-http:Crypto/lab5/test.py:20"},{"rule_id":"opengrep/python.lang.security.audit.insecure-transport.requests.request-with-http","severity":"low","message":"Detected a request using 'http://'. This request will be unencrypted, and attackers could listen into traffic on the network and be able to obtain sensitive information. Use 'https://' instead. [confidence medium]","path":"Crypto/lab5/test.py","line":23,"fingerprint":"python.lang.security.audit.insecure-transport.requests.request-with-http:Crypto/lab5/test.py:23"},{"rule_id":"opengrep/python.lang.security.audit.insecure-transport.requests.request-with-http","severity":"low","message":"Detected a request using 'http://'. This request will be unencrypted, and attackers could listen into traffic on the network and be able to obtain sensitive information. Use 'https://' instead. [confidence medium]","path":"Crypto/lab5/test.py","line":26,"fingerprint":"python.lang.security.audit.insecure-transport.requests.request-with-http:Crypto/lab5/test.py:26"},{"rule_id":"opengrep/python.lang.security.audit.insecure-transport.requests.request-with-http","severity":"low","message":"Detected a request using 'http://'. This request will be unencrypted, and attackers could listen into traffic on the network and be able to obtain sensitive information. Use 'https://' instead. [confidence medium]","path":"Crypto/lab5/test.py","line":30,"fingerprint":"python.lang.security.audit.insecure-transport.requests.request-with-http:Crypto/lab5/test.py:30"},{"rule_id":"opengrep/python.lang.security.audit.insecure-transport.requests.request-with-http","severity":"low","message":"Detected a request using 'http://'. This request will be unencrypted, and attackers could listen into traffic on the network and be able to obtain sensitive information. Use 'https://' instead. [confidence medium]","path":"Crypto/lab5/test.py","line":36,"fingerprint":"python.lang.security.audit.insecure-transport.requests.request-with-http:Crypto/lab5/test.py:36"},{"rule_id":"opengrep/python.lang.security.audit.insecure-transport.requests.request-with-http","severity":"low","message":"Detected a request using 'http://'. This request will be unencrypted, and attackers could listen into traffic on the network and be able to obtain sensitive information. Use 'https://' instead. [confidence medium]","path":"Crypto/lab5/test.py","line":42,"fingerprint":"python.lang.security.audit.insecure-transport.requests.request-with-http:Crypto/lab5/test.py:42"},{"rule_id":"opengrep/python.lang.security.audit.insecure-transport.requests.request-with-http","severity":"low","message":"Detected a request using 'http://'. This request will be unencrypted, and attackers could listen into traffic on the network and be able to obtain sensitive information. Use 'https://' instead. [confidence medium]","path":"Crypto/lab5/test.py","line":49,"fingerprint":"python.lang.security.audit.insecure-transport.requests.request-with-http:Crypto/lab5/test.py:49"},{"rule_id":"opengrep/python.lang.security.audit.insecure-transport.requests.request-with-http","severity":"low","message":"Detected a request using 'http://'. This request will be unencrypted, and attackers could listen into traffic on the network and be able to obtain sensitive information. Use 'https://' instead. [confidence medium]","path":"Crypto/lab5/test.py","line":56,"fingerprint":"python.lang.security.audit.insecure-transport.requests.request-with-http:Crypto/lab5/test.py:56"},{"rule_id":"opengrep/python.lang.security.audit.insecure-transport.requests.request-with-http","severity":"low","message":"Detected a request using 'http://'. This request will be unencrypted, and attackers could listen into traffic on the network and be able to obtain sensitive information. Use 'https://' instead. [confidence medium]","path":"Crypto/lab5/test.py","line":63,"fingerprint":"python.lang.security.audit.insecure-transport.requests.request-with-http:Crypto/lab5/test.py:63"},{"rule_id":"opengrep/python.lang.security.use-defusedcsv","severity":"low","message":"Detected the generation of a CSV file using the built-in `csv` module. If user data is used to generate the data in this file, it is possible that an attacker could inject a formula when the CSV is imported into a spreadsheet application that runs an attacker script, which could steal data from the  [confidence low]","path":"Programming Methods/lab9/Task3.py","line":22,"fingerprint":"python.lang.security.use-defusedcsv:Programming Methods/lab9/Task3.py:22"}],"evidence":[],"data":{"rulesets":["python","c","go","typescript","javascript","java","bash","csharp","php","dockerfile"]},"error":null},{"analyzer":"sec-deps","pillar":"security","status":"ok","tool_version":"osv-scanner version: 2.7.1","metrics":{"vulnerable_packages":54.0,"vulnerabilities":281.0,"vulns_critical":22.0,"vulns_high":146.0,"vulns_medium":82.0,"vulns_low":8.0,"vulns_unknown":23.0,"penalty":368.0},"findings":[{"rule_id":"osv/GHSA-5x8w-8jj5-q52h","severity":"critical","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4330, GHSA-5x8w-8jj5-q52h","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-5x8w-8jj5-q52h"},{"rule_id":"osv/GHSA-8g5g-8vmr-9782","severity":"critical","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4332, GHSA-8g5g-8vmr-9782","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-8g5g-8vmr-9782"},{"rule_id":"osv/GHSA-v9pv-5gc8-w2m6","severity":"critical","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4339, GHSA-v9pv-5gc8-w2m6","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-v9pv-5gc8-w2m6"},{"rule_id":"osv/GHSA-xvh5-g6gv-559v","severity":"critical","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4363, GHSA-xvh5-g6gv-559v","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-xvh5-g6gv-559v"},{"rule_id":"osv/GHSA-332p-7hrc-92wf","severity":"critical","message":"pillow@12.1.0 (PyPI) is affected by GHSA-332p-7hrc-92wf","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-332p-7hrc-92wf"},{"rule_id":"osv/GHSA-w889-685w-c8fh","severity":"critical","message":"pillow@12.1.0 (PyPI) is affected by GHSA-w889-685w-c8fh","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-w889-685w-c8fh"},{"rule_id":"osv/GHSA-82r6-8w77-94w6","severity":"critical","message":"anyio@4.12.1 (PyPI) is affected by PYSEC-2026-4025, GHSA-82r6-8w77-94w6","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"anyio@4.12.1 (PyPI):GHSA-82r6-8w77-94w6"},{"rule_id":"osv/GHSA-6q48-6c7w-9gw2","severity":"critical","message":"certifi@2026.1.4 (PyPI) is affected by PYSEC-2026-4320, GHSA-6q48-6c7w-9gw2","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"certifi@2026.1.4 (PyPI):GHSA-6q48-6c7w-9gw2"},{"rule_id":"osv/GHSA-jppx-rxg9-jmrx","severity":"critical","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-5005, GHSA-jppx-rxg9-jmrx","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GHSA-jppx-rxg9-jmrx"},{"rule_id":"osv/GHSA-f5wc-c3c7-36mc","severity":"critical","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-5006, GHSA-f5wc-c3c7-36mc","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GHSA-f5wc-c3c7-36mc"},{"rule_id":"osv/GHSA-vgwf-h737-ff37","severity":"critical","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-5017, GHSA-vgwf-h737-ff37","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GHSA-vgwf-h737-ff37"},{"rule_id":"osv/GHSA-89gr-r52h-f8rx","severity":"critical","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-5019, GHSA-89gr-r52h-f8rx","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GHSA-89gr-r52h-f8rx"},{"rule_id":"osv/GHSA-rm3j-f69w-wqmq","severity":"critical","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-5020, GHSA-rm3j-f69w-wqmq","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GHSA-rm3j-f69w-wqmq"},{"rule_id":"osv/GHSA-5cgq-3rg8-m6cv","severity":"critical","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-5021, GHSA-5cgq-3rg8-m6cv","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GHSA-5cgq-3rg8-m6cv"},{"rule_id":"osv/GHSA-x527-x647-q7gg","severity":"critical","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-5023, GHSA-x527-x647-q7gg","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GHSA-x527-x647-q7gg"},{"rule_id":"osv/GHSA-6q48-6c7w-9gw2","severity":"critical","message":"certifi@2026.7.22 (PyPI) is affected by PYSEC-2026-4320, GHSA-6q48-6c7w-9gw2","path":"Crypto/lab7/requirements.txt","line":null,"fingerprint":"certifi@2026.7.22 (PyPI):GHSA-6q48-6c7w-9gw2"},{"rule_id":"osv/GHSA-5x8w-8jj5-q52h","severity":"critical","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4330, GHSA-5x8w-8jj5-q52h","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-5x8w-8jj5-q52h"},{"rule_id":"osv/GHSA-8g5g-8vmr-9782","severity":"critical","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4332, GHSA-8g5g-8vmr-9782","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-8g5g-8vmr-9782"},{"rule_id":"osv/GHSA-v9pv-5gc8-w2m6","severity":"critical","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4339, GHSA-v9pv-5gc8-w2m6","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-v9pv-5gc8-w2m6"},{"rule_id":"osv/GHSA-xvh5-g6gv-559v","severity":"critical","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4363, GHSA-xvh5-g6gv-559v","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-xvh5-g6gv-559v"},{"rule_id":"osv/GHSA-332p-7hrc-92wf","severity":"critical","message":"pillow@12.0.0 (PyPI) is affected by GHSA-332p-7hrc-92wf","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-332p-7hrc-92wf"},{"rule_id":"osv/GHSA-w889-685w-c8fh","severity":"critical","message":"pillow@12.0.0 (PyPI) is affected by GHSA-w889-685w-c8fh","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-w889-685w-c8fh"},{"rule_id":"osv/GHSA-2h4p-vjrc-8xpq","severity":"high","message":"mako@1.3.11 (PyPI) is affected by PYSEC-2026-2617, GHSA-2h4p-vjrc-8xpq","path":"APR/lab7/test-web/requirements.txt","line":null,"fingerprint":"mako@1.3.11 (PyPI):GHSA-2h4p-vjrc-8xpq"},{"rule_id":"osv/GHSA-cfh3-3jmp-rvhc","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-2249, GHSA-cfh3-3jmp-rvhc","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-cfh3-3jmp-rvhc"},{"rule_id":"osv/GHSA-whj4-6x5x-4v2j","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-2250, GHSA-whj4-6x5x-4v2j","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-whj4-6x5x-4v2j"},{"rule_id":"osv/GHSA-pwv6-vv43-88gr","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-2252, GHSA-pwv6-vv43-88gr","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-pwv6-vv43-88gr"},{"rule_id":"osv/GHSA-8v84-f9pq-wr9x","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-2253, GHSA-8v84-f9pq-wr9x","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-8v84-f9pq-wr9x"},{"rule_id":"osv/GHSA-5x94-69rx-g8h2","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-2254, GHSA-5x94-69rx-g8h2","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-5x94-69rx-g8h2"},{"rule_id":"osv/GHSA-45hq-cxwh-f6vc","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-2255, GHSA-45hq-cxwh-f6vc","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-45hq-cxwh-f6vc"},{"rule_id":"osv/GHSA-phj9-mv4w-65pm","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-2256, GHSA-phj9-mv4w-65pm","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-phj9-mv4w-65pm"},{"rule_id":"osv/GHSA-6r8x-57c9-28j4","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-3451, GHSA-6r8x-57c9-28j4","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-6r8x-57c9-28j4"},{"rule_id":"osv/GHSA-pg7v-jwj7-p798","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-3452, GHSA-pg7v-jwj7-p798","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-pg7v-jwj7-p798"},{"rule_id":"osv/GHSA-9hw9-ch79-4vh6","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-3453, GHSA-9hw9-ch79-4vh6","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-9hw9-ch79-4vh6"},{"rule_id":"osv/GHSA-xj96-63gp-2gmr","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-3454, GHSA-xj96-63gp-2gmr","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-xj96-63gp-2gmr"},{"rule_id":"osv/GHSA-62p4-gmf7-7g93","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-3493, GHSA-62p4-gmf7-7g93","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-62p4-gmf7-7g93"},{"rule_id":"osv/GHSA-jjj6-mw9f-p565","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-3495, GHSA-jjj6-mw9f-p565","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-jjj6-mw9f-p565"},{"rule_id":"osv/GHSA-vjc4-5qp5-m44j","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-3496, GHSA-vjc4-5qp5-m44j","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-vjc4-5qp5-m44j"},{"rule_id":"osv/GHSA-27h8-gf7j-v5hc","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4326, GHSA-27h8-gf7j-v5hc","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-27h8-gf7j-v5hc"},{"rule_id":"osv/GHSA-4558-3h8r-v8xp","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4327, GHSA-4558-3h8r-v8xp","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-4558-3h8r-v8xp"},{"rule_id":"osv/GHSA-4rr5-89j8-mwwm","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4328, GHSA-4rr5-89j8-mwwm","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-4rr5-89j8-mwwm"},{"rule_id":"osv/GHSA-58r4-6rv3-gfh8","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4329, GHSA-58r4-6rv3-gfh8","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-58r4-6rv3-gfh8"},{"rule_id":"osv/GHSA-7mwm-ghpf-9vrm","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4331, GHSA-7mwm-ghpf-9vrm","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-7mwm-ghpf-9vrm"},{"rule_id":"osv/GHSA-cp9v-662q-vvx9","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4333, GHSA-cp9v-662q-vvx9","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-cp9v-662q-vvx9"},{"rule_id":"osv/GHSA-pchr-8j38-3x4p","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4334, GHSA-pchr-8j38-3x4p","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-pchr-8j38-3x4p"},{"rule_id":"osv/GHSA-xgh8-jp6q-p5x8","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4335, GHSA-xgh8-jp6q-p5x8","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-xgh8-jp6q-p5x8"},{"rule_id":"osv/GHSA-g842-9rc4-69pw","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4338, GHSA-g842-9rc4-69pw","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-g842-9rc4-69pw"},{"rule_id":"osv/GHSA-3j72-p6qg-6xp7","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4341, GHSA-3j72-p6qg-6xp7","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-3j72-p6qg-6xp7"},{"rule_id":"osv/GHSA-g4qv-2jxx-769h","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4342, GHSA-g4qv-2jxx-769h","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-g4qv-2jxx-769h"},{"rule_id":"osv/GHSA-9v9v-9qvf-h2hj","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4343, GHSA-9v9v-9qvf-h2hj","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-9v9v-9qvf-h2hj"},{"rule_id":"osv/GHSA-22hg-r758-rrw9","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by GHSA-22hg-r758-rrw9","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-22hg-r758-rrw9"},{"rule_id":"osv/GHSA-5xm2-6676-qcp9","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by GHSA-5xm2-6676-qcp9","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-5xm2-6676-qcp9"},{"rule_id":"osv/GHSA-65qm-jvmh-6pqg","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by GHSA-65qm-jvmh-6pqg","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-65qm-jvmh-6pqg"},{"rule_id":"osv/GHSA-78g4-xqwv-q3g8","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by GHSA-78g4-xqwv-q3g8","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-78g4-xqwv-q3g8"},{"rule_id":"osv/GHSA-c6hw-5grf-ff96","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by GHSA-c6hw-5grf-ff96","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-c6hw-5grf-ff96"},{"rule_id":"osv/GHSA-f2g6-542v-9j58","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by GHSA-f2g6-542v-9j58","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-f2g6-542v-9j58"},{"rule_id":"osv/GHSA-g7cr-3p24-7wf7","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by GHSA-g7cr-3p24-7wf7","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-g7cr-3p24-7wf7"},{"rule_id":"osv/GHSA-gg2r-wvfm-q9rx","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by GHSA-gg2r-wvfm-q9rx","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-gg2r-wvfm-q9rx"},{"rule_id":"osv/GHSA-j4m9-6w36-pw47","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by GHSA-j4m9-6w36-pw47","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-j4m9-6w36-pw47"},{"rule_id":"osv/GHSA-jg86-v3jv-hrpm","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by GHSA-jg86-v3jv-hrpm","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-jg86-v3jv-hrpm"},{"rule_id":"osv/GHSA-mrfp-p49p-3hf2","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by GHSA-mrfp-p49p-3hf2","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-mrfp-p49p-3hf2"},{"rule_id":"osv/GHSA-p4wg-p73j-c528","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by GHSA-p4wg-p73j-c528","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-p4wg-p73j-c528"},{"rule_id":"osv/GHSA-q45j-58j2-45rg","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by GHSA-q45j-58j2-45rg","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-q45j-58j2-45rg"},{"rule_id":"osv/GHSA-xcvg-w56q-r89m","severity":"high","message":"pillow@12.1.0 (PyPI) is affected by GHSA-xcvg-w56q-r89m","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-xcvg-w56q-r89m"},{"rule_id":"osv/GHSA-45c3-73f7-pv4m","severity":"high","message":"dnspython@2.8.0 (PyPI) is affected by GHSA-45c3-73f7-pv4m","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"dnspython@2.8.0 (PyPI):GHSA-45c3-73f7-pv4m"},{"rule_id":"osv/GHSA-vvf4-9x63-8xvv","severity":"high","message":"dnspython@2.8.0 (PyPI) is affected by GHSA-vvf4-9x63-8xvv","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"dnspython@2.8.0 (PyPI):GHSA-vvf4-9x63-8xvv"},{"rule_id":"osv/GHSA-5rvq-cxj2-64vf","severity":"high","message":"python-multipart@0.0.22 (PyPI) is affected by PYSEC-2026-3036, GHSA-5rvq-cxj2-64vf","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"python-multipart@0.0.22 (PyPI):GHSA-5rvq-cxj2-64vf"},{"rule_id":"osv/GHSA-pp6c-gr5w-3c5g","severity":"high","message":"python-multipart@0.0.22 (PyPI) is affected by PYSEC-2026-3039, GHSA-pp6c-gr5w-3c5g","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"python-multipart@0.0.22 (PyPI):GHSA-pp6c-gr5w-3c5g"},{"rule_id":"osv/GHSA-wqp7-x3pw-xc5r","severity":"high","message":"starlette@0.52.1 (PyPI) is affected by PYSEC-2026-2281, GHSA-wqp7-x3pw-xc5r","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"starlette@0.52.1 (PyPI):GHSA-wqp7-x3pw-xc5r"},{"rule_id":"osv/GHSA-82w8-qh3p-5jfq","severity":"high","message":"starlette@0.52.1 (PyPI) is affected by PYSEC-2026-249, GHSA-82w8-qh3p-5jfq","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"starlette@0.52.1 (PyPI):GHSA-82w8-qh3p-5jfq"},{"rule_id":"osv/GHSA-wgvc-ghv9-3pmm","severity":"high","message":"ujson@5.11.0 (PyPI) is affected by PYSEC-2026-2291, GHSA-wgvc-ghv9-3pmm","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"ujson@5.11.0 (PyPI):GHSA-wgvc-ghv9-3pmm"},{"rule_id":"osv/GHSA-c8rr-9gxc-jprv","severity":"high","message":"ujson@5.11.0 (PyPI) is affected by PYSEC-2026-2292, GHSA-c8rr-9gxc-jprv","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"ujson@5.11.0 (PyPI):GHSA-c8rr-9gxc-jprv"},{"rule_id":"osv/GHSA-c38f-wx89-p2xg","severity":"high","message":"ujson@5.11.0 (PyPI) is affected by PYSEC-2026-2293, GHSA-c38f-wx89-p2xg","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"ujson@5.11.0 (PyPI):GHSA-c38f-wx89-p2xg"},{"rule_id":"osv/GHSA-qccp-gfcp-xxvc","severity":"high","message":"urllib3@2.6.3 (PyPI) is affected by PYSEC-2026-141, GHSA-qccp-gfcp-xxvc","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"urllib3@2.6.3 (PyPI):GHSA-qccp-gfcp-xxvc"},{"rule_id":"osv/GHSA-mf9v-mfxr-j63j","severity":"high","message":"urllib3@2.6.3 (PyPI) is affected by PYSEC-2026-142, GHSA-mf9v-mfxr-j63j","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"urllib3@2.6.3 (PyPI):GHSA-mf9v-mfxr-j63j"},{"rule_id":"osv/GHSA-8988-9cw3-xx77","severity":"high","message":"urllib3@2.6.3 (PyPI) is affected by PYSEC-2026-4175, GHSA-8988-9cw3-xx77","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"urllib3@2.6.3 (PyPI):GHSA-8988-9cw3-xx77"},{"rule_id":"osv/GHSA-vxq7-64xx-v4gw","severity":"high","message":"urllib3@2.6.3 (PyPI) is affected by PYSEC-2026-4177, GHSA-vxq7-64xx-v4gw","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"urllib3@2.6.3 (PyPI):GHSA-vxq7-64xx-v4gw"},{"rule_id":"osv/GHSA-3jxr-9vmj-r5cp","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-3jxr-9vmj-r5cp","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-3jxr-9vmj-r5cp"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-6j4f-fj2g-mc7p","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-mh99-v99m-4gvg","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-mh99-v99m-4gvg","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-mh99-v99m-4gvg"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-qhr7-859c-m2p7","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-rgw5-rvv9-x895","severity":"high","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-rgw5-rvv9-x895","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-rgw5-rvv9-x895"},{"rule_id":"osv/GHSA-3jxr-9vmj-r5cp","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-3jxr-9vmj-r5cp","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-3jxr-9vmj-r5cp"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-6j4f-fj2g-mc7p","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-mh99-v99m-4gvg","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-mh99-v99m-4gvg","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-mh99-v99m-4gvg"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-qhr7-859c-m2p7","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-rgw5-rvv9-x895","severity":"high","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-rgw5-rvv9-x895","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-rgw5-rvv9-x895"},{"rule_id":"osv/GHSA-73wf-gq98-2v4g","severity":"high","message":"browserslist@4.28.1 (npm) is affected by GHSA-73wf-gq98-2v4g","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"browserslist@4.28.1 (npm):GHSA-73wf-gq98-2v4g"},{"rule_id":"osv/GHSA-c83g-rgw3-j3cx","severity":"high","message":"browserslist@4.28.1 (npm) is affected by GHSA-c83g-rgw3-j3cx","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"browserslist@4.28.1 (npm):GHSA-c83g-rgw3-j3cx"},{"rule_id":"osv/GHSA-25h7-pfq9-p65f","severity":"high","message":"flatted@3.3.3 (npm) is affected by GHSA-25h7-pfq9-p65f","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"flatted@3.3.3 (npm):GHSA-25h7-pfq9-p65f"},{"rule_id":"osv/GHSA-rf6f-7fwh-wjgh","severity":"high","message":"flatted@3.3.3 (npm) is affected by GHSA-rf6f-7fwh-wjgh","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"flatted@3.3.3 (npm):GHSA-rf6f-7fwh-wjgh"},{"rule_id":"osv/GHSA-2883-xcg3-v3hh","severity":"high","message":"js-yaml@4.1.1 (npm) is affected by GHSA-2883-xcg3-v3hh","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"js-yaml@4.1.1 (npm):GHSA-2883-xcg3-v3hh"},{"rule_id":"osv/GHSA-52cp-r559-cp3m","severity":"high","message":"js-yaml@4.1.1 (npm) is affected by GHSA-52cp-r559-cp3m","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"js-yaml@4.1.1 (npm):GHSA-52cp-r559-cp3m"},{"rule_id":"osv/GHSA-5p4m-2wfm-xmqj","severity":"high","message":"js-yaml@4.1.1 (npm) is affected by GHSA-5p4m-2wfm-xmqj","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"js-yaml@4.1.1 (npm):GHSA-5p4m-2wfm-xmqj"},{"rule_id":"osv/GHSA-23c5-xmqv-rm74","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-23c5-xmqv-rm74","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-23c5-xmqv-rm74"},{"rule_id":"osv/GHSA-3ppc-4f35-3m26","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-3ppc-4f35-3m26","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-3ppc-4f35-3m26"},{"rule_id":"osv/GHSA-7r86-cg39-jmmj","severity":"high","message":"minimatch@3.1.2 (npm) is affected by GHSA-7r86-cg39-jmmj","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"minimatch@3.1.2 (npm):GHSA-7r86-cg39-jmmj"},{"rule_id":"osv/GHSA-23c5-xmqv-rm74","severity":"high","message":"minimatch@9.0.5 (npm) is affected by GHSA-23c5-xmqv-rm74","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-23c5-xmqv-rm74"},{"rule_id":"osv/GHSA-3ppc-4f35-3m26","severity":"high","message":"minimatch@9.0.5 (npm) is affected by GHSA-3ppc-4f35-3m26","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-3ppc-4f35-3m26"},{"rule_id":"osv/GHSA-7r86-cg39-jmmj","severity":"high","message":"minimatch@9.0.5 (npm) is affected by GHSA-7r86-cg39-jmmj","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-7r86-cg39-jmmj"},{"rule_id":"osv/GHSA-28wg-ghj8-5hjv","severity":"high","message":"nanoid@3.3.11 (npm) is affected by GHSA-28wg-ghj8-5hjv","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-28wg-ghj8-5hjv"},{"rule_id":"osv/GHSA-2v37-7h3g-55p8","severity":"high","message":"nanoid@3.3.11 (npm) is affected by GHSA-2v37-7h3g-55p8","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-2v37-7h3g-55p8"},{"rule_id":"osv/GHSA-xwg4-73v4-xw9w","severity":"high","message":"nanoid@3.3.11 (npm) is affected by GHSA-xwg4-73v4-xw9w","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"nanoid@3.3.11 (npm):GHSA-xwg4-73v4-xw9w"},{"rule_id":"osv/GHSA-c2c7-rcm5-vvqj","severity":"high","message":"picomatch@2.3.1 (npm) is affected by GHSA-c2c7-rcm5-vvqj","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"picomatch@2.3.1 (npm):GHSA-c2c7-rcm5-vvqj"},{"rule_id":"osv/GHSA-c2c7-rcm5-vvqj","severity":"high","message":"picomatch@4.0.3 (npm) is affected by GHSA-c2c7-rcm5-vvqj","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"picomatch@4.0.3 (npm):GHSA-c2c7-rcm5-vvqj"},{"rule_id":"osv/GHSA-6g55-p6wh-862q","severity":"high","message":"postcss@8.5.6 (npm) is affected by GHSA-6g55-p6wh-862q","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-6g55-p6wh-862q"},{"rule_id":"osv/GHSA-r28c-9q8g-f849","severity":"high","message":"postcss@8.5.6 (npm) is affected by GHSA-r28c-9q8g-f849","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-r28c-9q8g-f849"},{"rule_id":"osv/GHSA-mw96-cpmx-2vgc","severity":"high","message":"rollup@4.57.1 (npm) is affected by GHSA-mw96-cpmx-2vgc","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"rollup@4.57.1 (npm):GHSA-mw96-cpmx-2vgc"},{"rule_id":"osv/GHSA-68fv-2mgg-jv7q","severity":"high","message":"source-map-js@1.2.1 (npm) is affected by GHSA-68fv-2mgg-jv7q; also in Crypto/lab5/frontend/package-lock.json","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"source-map-js@1.2.1 (npm):GHSA-68fv-2mgg-jv7q"},{"rule_id":"osv/GHSA-587h-7wmj-h5pm","severity":"high","message":"vite@7.3.1 (npm) is affected by GHSA-587h-7wmj-h5pm","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"vite@7.3.1 (npm):GHSA-587h-7wmj-h5pm"},{"rule_id":"osv/GHSA-p9ff-h696-f583","severity":"high","message":"vite@7.3.1 (npm) is affected by GHSA-p9ff-h696-f583","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"vite@7.3.1 (npm):GHSA-p9ff-h696-f583"},{"rule_id":"osv/GHSA-v2wj-q39q-566r","severity":"high","message":"vite@7.3.1 (npm) is affected by GHSA-v2wj-q39q-566r","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"vite@7.3.1 (npm):GHSA-v2wj-q39q-566r"},{"rule_id":"osv/GHSA-mrhx-c7xc-m3w5","severity":"high","message":"zod@4.3.6 (npm) is affected by GHSA-mrhx-c7xc-m3w5","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"zod@4.3.6 (npm):GHSA-mrhx-c7xc-m3w5"},{"rule_id":"osv/GHSA-q4h4-gmj2-qvw2","severity":"high","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-5013, GHSA-q4h4-gmj2-qvw2","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GHSA-q4h4-gmj2-qvw2"},{"rule_id":"osv/GHSA-w879-237q-wc7r","severity":"high","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-5018, GHSA-w879-237q-wc7r","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GHSA-w879-237q-wc7r"},{"rule_id":"osv/GHSA-3jxr-9vmj-r5cp","severity":"high","message":"brace-expansion@5.0.6 (npm) is affected by GHSA-3jxr-9vmj-r5cp","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@5.0.6 (npm):GHSA-3jxr-9vmj-r5cp"},{"rule_id":"osv/GHSA-6j4f-fj2g-mc7p","severity":"high","message":"brace-expansion@5.0.6 (npm) is affected by GHSA-6j4f-fj2g-mc7p","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@5.0.6 (npm):GHSA-6j4f-fj2g-mc7p"},{"rule_id":"osv/GHSA-mh99-v99m-4gvg","severity":"high","message":"brace-expansion@5.0.6 (npm) is affected by GHSA-mh99-v99m-4gvg","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@5.0.6 (npm):GHSA-mh99-v99m-4gvg"},{"rule_id":"osv/GHSA-qhr7-859c-m2p7","severity":"high","message":"brace-expansion@5.0.6 (npm) is affected by GHSA-qhr7-859c-m2p7","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@5.0.6 (npm):GHSA-qhr7-859c-m2p7"},{"rule_id":"osv/GHSA-rgw5-rvv9-x895","severity":"high","message":"brace-expansion@5.0.6 (npm) is affected by GHSA-rgw5-rvv9-x895","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@5.0.6 (npm):GHSA-rgw5-rvv9-x895"},{"rule_id":"osv/GHSA-73wf-gq98-2v4g","severity":"high","message":"browserslist@4.28.2 (npm) is affected by GHSA-73wf-gq98-2v4g","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"browserslist@4.28.2 (npm):GHSA-73wf-gq98-2v4g"},{"rule_id":"osv/GHSA-c83g-rgw3-j3cx","severity":"high","message":"browserslist@4.28.2 (npm) is affected by GHSA-c83g-rgw3-j3cx","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"browserslist@4.28.2 (npm):GHSA-c83g-rgw3-j3cx"},{"rule_id":"osv/GHSA-28wg-ghj8-5hjv","severity":"high","message":"nanoid@3.3.12 (npm) is affected by GHSA-28wg-ghj8-5hjv","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"nanoid@3.3.12 (npm):GHSA-28wg-ghj8-5hjv"},{"rule_id":"osv/GHSA-2v37-7h3g-55p8","severity":"high","message":"nanoid@3.3.12 (npm) is affected by GHSA-2v37-7h3g-55p8","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"nanoid@3.3.12 (npm):GHSA-2v37-7h3g-55p8"},{"rule_id":"osv/GHSA-r28c-9q8g-f849","severity":"high","message":"postcss@8.5.14 (npm) is affected by GHSA-r28c-9q8g-f849","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"postcss@8.5.14 (npm):GHSA-r28c-9q8g-f849"},{"rule_id":"osv/GHSA-587h-7wmj-h5pm","severity":"high","message":"vite@8.0.11 (npm) is affected by GHSA-587h-7wmj-h5pm","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"vite@8.0.11 (npm):GHSA-587h-7wmj-h5pm"},{"rule_id":"osv/GHSA-mrhx-c7xc-m3w5","severity":"high","message":"zod@4.4.3 (npm) is affected by GHSA-mrhx-c7xc-m3w5","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"zod@4.4.3 (npm):GHSA-mrhx-c7xc-m3w5"},{"rule_id":"osv/GHSA-8988-9cw3-xx77","severity":"high","message":"urllib3@2.7.0 (PyPI) is affected by PYSEC-2026-4175, GHSA-8988-9cw3-xx77","path":"Crypto/lab7/requirements.txt","line":null,"fingerprint":"urllib3@2.7.0 (PyPI):GHSA-8988-9cw3-xx77"},{"rule_id":"osv/GHSA-vxq7-64xx-v4gw","severity":"high","message":"urllib3@2.7.0 (PyPI) is affected by PYSEC-2026-4177, GHSA-vxq7-64xx-v4gw","path":"Crypto/lab7/requirements.txt","line":null,"fingerprint":"urllib3@2.7.0 (PyPI):GHSA-vxq7-64xx-v4gw"},{"rule_id":"osv/GHSA-cfh3-3jmp-rvhc","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-2249, GHSA-cfh3-3jmp-rvhc","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-cfh3-3jmp-rvhc"},{"rule_id":"osv/GHSA-whj4-6x5x-4v2j","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-2250, GHSA-whj4-6x5x-4v2j","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-whj4-6x5x-4v2j"},{"rule_id":"osv/GHSA-pwv6-vv43-88gr","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-2252, GHSA-pwv6-vv43-88gr","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-pwv6-vv43-88gr"},{"rule_id":"osv/GHSA-8v84-f9pq-wr9x","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-2253, GHSA-8v84-f9pq-wr9x","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-8v84-f9pq-wr9x"},{"rule_id":"osv/GHSA-5x94-69rx-g8h2","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-2254, GHSA-5x94-69rx-g8h2","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-5x94-69rx-g8h2"},{"rule_id":"osv/GHSA-45hq-cxwh-f6vc","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-2255, GHSA-45hq-cxwh-f6vc","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-45hq-cxwh-f6vc"},{"rule_id":"osv/GHSA-phj9-mv4w-65pm","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-2256, GHSA-phj9-mv4w-65pm","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-phj9-mv4w-65pm"},{"rule_id":"osv/GHSA-6r8x-57c9-28j4","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-3451, GHSA-6r8x-57c9-28j4","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-6r8x-57c9-28j4"},{"rule_id":"osv/GHSA-pg7v-jwj7-p798","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-3452, GHSA-pg7v-jwj7-p798","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-pg7v-jwj7-p798"},{"rule_id":"osv/GHSA-9hw9-ch79-4vh6","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-3453, GHSA-9hw9-ch79-4vh6","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-9hw9-ch79-4vh6"},{"rule_id":"osv/GHSA-xj96-63gp-2gmr","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-3454, GHSA-xj96-63gp-2gmr","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-xj96-63gp-2gmr"},{"rule_id":"osv/GHSA-62p4-gmf7-7g93","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-3493, GHSA-62p4-gmf7-7g93","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-62p4-gmf7-7g93"},{"rule_id":"osv/GHSA-jjj6-mw9f-p565","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-3495, GHSA-jjj6-mw9f-p565","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-jjj6-mw9f-p565"},{"rule_id":"osv/GHSA-vjc4-5qp5-m44j","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-3496, GHSA-vjc4-5qp5-m44j","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-vjc4-5qp5-m44j"},{"rule_id":"osv/GHSA-27h8-gf7j-v5hc","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4326, GHSA-27h8-gf7j-v5hc","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-27h8-gf7j-v5hc"},{"rule_id":"osv/GHSA-4558-3h8r-v8xp","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4327, GHSA-4558-3h8r-v8xp","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-4558-3h8r-v8xp"},{"rule_id":"osv/GHSA-4rr5-89j8-mwwm","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4328, GHSA-4rr5-89j8-mwwm","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-4rr5-89j8-mwwm"},{"rule_id":"osv/GHSA-58r4-6rv3-gfh8","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4329, GHSA-58r4-6rv3-gfh8","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-58r4-6rv3-gfh8"},{"rule_id":"osv/GHSA-7mwm-ghpf-9vrm","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4331, GHSA-7mwm-ghpf-9vrm","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-7mwm-ghpf-9vrm"},{"rule_id":"osv/GHSA-cp9v-662q-vvx9","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4333, GHSA-cp9v-662q-vvx9","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-cp9v-662q-vvx9"},{"rule_id":"osv/GHSA-pchr-8j38-3x4p","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4334, GHSA-pchr-8j38-3x4p","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-pchr-8j38-3x4p"},{"rule_id":"osv/GHSA-xgh8-jp6q-p5x8","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4335, GHSA-xgh8-jp6q-p5x8","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-xgh8-jp6q-p5x8"},{"rule_id":"osv/GHSA-g842-9rc4-69pw","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4338, GHSA-g842-9rc4-69pw","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-g842-9rc4-69pw"},{"rule_id":"osv/GHSA-3j72-p6qg-6xp7","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4341, GHSA-3j72-p6qg-6xp7","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-3j72-p6qg-6xp7"},{"rule_id":"osv/GHSA-g4qv-2jxx-769h","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4342, GHSA-g4qv-2jxx-769h","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-g4qv-2jxx-769h"},{"rule_id":"osv/GHSA-9v9v-9qvf-h2hj","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4343, GHSA-9v9v-9qvf-h2hj","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-9v9v-9qvf-h2hj"},{"rule_id":"osv/GHSA-22hg-r758-rrw9","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by GHSA-22hg-r758-rrw9","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-22hg-r758-rrw9"},{"rule_id":"osv/GHSA-5xm2-6676-qcp9","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by GHSA-5xm2-6676-qcp9","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-5xm2-6676-qcp9"},{"rule_id":"osv/GHSA-65qm-jvmh-6pqg","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by GHSA-65qm-jvmh-6pqg","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-65qm-jvmh-6pqg"},{"rule_id":"osv/GHSA-78g4-xqwv-q3g8","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by GHSA-78g4-xqwv-q3g8","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-78g4-xqwv-q3g8"},{"rule_id":"osv/GHSA-c6hw-5grf-ff96","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by GHSA-c6hw-5grf-ff96","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-c6hw-5grf-ff96"},{"rule_id":"osv/GHSA-f2g6-542v-9j58","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by GHSA-f2g6-542v-9j58","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-f2g6-542v-9j58"},{"rule_id":"osv/GHSA-g7cr-3p24-7wf7","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by GHSA-g7cr-3p24-7wf7","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-g7cr-3p24-7wf7"},{"rule_id":"osv/GHSA-gg2r-wvfm-q9rx","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by GHSA-gg2r-wvfm-q9rx","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-gg2r-wvfm-q9rx"},{"rule_id":"osv/GHSA-j4m9-6w36-pw47","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by GHSA-j4m9-6w36-pw47","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-j4m9-6w36-pw47"},{"rule_id":"osv/GHSA-jg86-v3jv-hrpm","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by GHSA-jg86-v3jv-hrpm","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-jg86-v3jv-hrpm"},{"rule_id":"osv/GHSA-mrfp-p49p-3hf2","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by GHSA-mrfp-p49p-3hf2","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-mrfp-p49p-3hf2"},{"rule_id":"osv/GHSA-p4wg-p73j-c528","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by GHSA-p4wg-p73j-c528","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-p4wg-p73j-c528"},{"rule_id":"osv/GHSA-q45j-58j2-45rg","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by GHSA-q45j-58j2-45rg","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-q45j-58j2-45rg"},{"rule_id":"osv/GHSA-xcvg-w56q-r89m","severity":"high","message":"pillow@12.0.0 (PyPI) is affected by GHSA-xcvg-w56q-r89m","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-xcvg-w56q-r89m"},{"rule_id":"osv/GHSA-5639-2j2p-m4mx","severity":"medium","message":"mako@1.3.11 (PyPI) is affected by PYSEC-2026-4243, GHSA-5639-2j2p-m4mx","path":"APR/lab7/test-web/requirements.txt","line":null,"fingerprint":"mako@1.3.11 (PyPI):GHSA-5639-2j2p-m4mx"},{"rule_id":"osv/GHSA-g6x2-hccm-hh4m","severity":"medium","message":"werkzeug@3.1.8 (PyPI) is affected by PYSEC-2026-4312, GHSA-g6x2-hccm-hh4m","path":"APR/lab7/test-web/requirements.txt","line":null,"fingerprint":"werkzeug@3.1.8 (PyPI):GHSA-g6x2-hccm-hh4m"},{"rule_id":"osv/GHSA-4xgf-cpjx-pc3j","severity":"medium","message":"pydantic-settings@2.14.0 (PyPI) is affected by GHSA-4xgf-cpjx-pc3j","path":"APR/lab7/test-web/requirements.txt","line":null,"fingerprint":"pydantic-settings@2.14.0 (PyPI):GHSA-4xgf-cpjx-pc3j"},{"rule_id":"osv/GHSA-wjx4-4jcj-g98j","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-165, GHSA-wjx4-4jcj-g98j","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-wjx4-4jcj-g98j"},{"rule_id":"osv/GHSA-5xmw-vc9v-4wf2","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-2251, GHSA-5xmw-vc9v-4wf2","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-5xmw-vc9v-4wf2"},{"rule_id":"osv/GHSA-4x4j-2g7c-83w6","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-2257, GHSA-4x4j-2g7c-83w6","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-4x4j-2g7c-83w6"},{"rule_id":"osv/GHSA-r73j-pqj5-w3x7","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-2874, GHSA-r73j-pqj5-w3x7","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-r73j-pqj5-w3x7"},{"rule_id":"osv/GHSA-fj7v-r99m-22gq","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-3494, GHSA-fj7v-r99m-22gq","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-fj7v-r99m-22gq"},{"rule_id":"osv/GHSA-654x-cwwv-5j9c","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4336, GHSA-654x-cwwv-5j9c","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-654x-cwwv-5j9c"},{"rule_id":"osv/GHSA-p8hx-v2p6-rp84","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4337, GHSA-p8hx-v2p6-rp84","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-p8hx-v2p6-rp84"},{"rule_id":"osv/GHSA-4rm8-3hmm-39fg","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by PYSEC-2026-4340, GHSA-4rm8-3hmm-39fg","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-4rm8-3hmm-39fg"},{"rule_id":"osv/GHSA-24rc-8hj2-v98c","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by GHSA-24rc-8hj2-v98c","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-24rc-8hj2-v98c"},{"rule_id":"osv/GHSA-254f-3936-288h","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by GHSA-254f-3936-288h","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-254f-3936-288h"},{"rule_id":"osv/GHSA-462x-pgg6-55fp","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by GHSA-462x-pgg6-55fp","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-462x-pgg6-55fp"},{"rule_id":"osv/GHSA-74r2-7ff9-mjj2","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by GHSA-74r2-7ff9-mjj2","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-74r2-7ff9-mjj2"},{"rule_id":"osv/GHSA-fc9g-5qg7-mf45","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by GHSA-fc9g-5qg7-mf45","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-fc9g-5qg7-mf45"},{"rule_id":"osv/GHSA-rfgq-q3w2-pmv2","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by GHSA-rfgq-q3w2-pmv2","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-rfgq-q3w2-pmv2"},{"rule_id":"osv/GHSA-vx6w-vv9f-6gvg","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by GHSA-vx6w-vv9f-6gvg","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-vx6w-vv9f-6gvg"},{"rule_id":"osv/GHSA-wqgw-9xfh-qf2g","severity":"medium","message":"pillow@12.1.0 (PyPI) is affected by GHSA-wqgw-9xfh-qf2g","path":"APR/lab8/requirements.txt","line":null,"fingerprint":"pillow@12.1.0 (PyPI):GHSA-wqgw-9xfh-qf2g"},{"rule_id":"osv/GHSA-5p39-cfhj-2xmp","severity":"medium","message":"anyio@4.12.1 (PyPI) is affected by PYSEC-2026-4024, GHSA-5p39-cfhj-2xmp","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"anyio@4.12.1 (PyPI):GHSA-5p39-cfhj-2xmp"},{"rule_id":"osv/GHSA-65pc-fj4g-8rjx","severity":"medium","message":"idna@3.11 (PyPI) is affected by PYSEC-2026-215, GHSA-65pc-fj4g-8rjx","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"idna@3.11 (PyPI):GHSA-65pc-fj4g-8rjx"},{"rule_id":"osv/GHSA-4xgf-cpjx-pc3j","severity":"medium","message":"pydantic-settings@2.12.0 (PyPI) is affected by GHSA-4xgf-cpjx-pc3j","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"pydantic-settings@2.12.0 (PyPI):GHSA-4xgf-cpjx-pc3j"},{"rule_id":"osv/GHSA-mf9w-mj56-hr94","severity":"medium","message":"python-dotenv@1.2.1 (PyPI) is affected by PYSEC-2026-2270, GHSA-mf9w-mj56-hr94","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"python-dotenv@1.2.1 (PyPI):GHSA-mf9w-mj56-hr94"},{"rule_id":"osv/GHSA-mj87-hwqh-73pj","severity":"medium","message":"python-multipart@0.0.22 (PyPI) is affected by PYSEC-2026-3038, GHSA-mj87-hwqh-73pj","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"python-multipart@0.0.22 (PyPI):GHSA-mj87-hwqh-73pj"},{"rule_id":"osv/GHSA-86qp-5c8j-p5mr","severity":"medium","message":"starlette@0.52.1 (PyPI) is affected by PYSEC-2026-161, GHSA-86qp-5c8j-p5mr","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"starlette@0.52.1 (PyPI):GHSA-86qp-5c8j-p5mr"},{"rule_id":"osv/GHSA-x746-7m8f-x49c","severity":"medium","message":"starlette@0.52.1 (PyPI) is affected by PYSEC-2026-2280, GHSA-x746-7m8f-x49c","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"starlette@0.52.1 (PyPI):GHSA-x746-7m8f-x49c"},{"rule_id":"osv/GHSA-jp82-jpqv-5vv3","severity":"medium","message":"starlette@0.52.1 (PyPI) is affected by PYSEC-2026-248, GHSA-jp82-jpqv-5vv3","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"starlette@0.52.1 (PyPI):GHSA-jp82-jpqv-5vv3"},{"rule_id":"osv/GHSA-3j69-69wj-xqx2","severity":"medium","message":"ujson@5.11.0 (PyPI) is affected by PYSEC-2026-2294, GHSA-3j69-69wj-xqx2","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"ujson@5.11.0 (PyPI):GHSA-3j69-69wj-xqx2"},{"rule_id":"osv/GHSA-gh4c-6fx4-qh6g","severity":"medium","message":"urllib3@2.6.3 (PyPI) is affected by PYSEC-2026-4176, GHSA-gh4c-6fx4-qh6g","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"urllib3@2.6.3 (PyPI):GHSA-gh4c-6fx4-qh6g"},{"rule_id":"osv/GHSA-p498-v437-472g","severity":"medium","message":"@humanfs/node@0.16.7 (npm) is affected by GHSA-p498-v437-472g","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"@humanfs/node@0.16.7 (npm):GHSA-p498-v437-472g"},{"rule_id":"osv/GHSA-2g4f-4pwh-qvx6","severity":"medium","message":"ajv@6.12.6 (npm) is affected by GHSA-2g4f-4pwh-qvx6","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"ajv@6.12.6 (npm):GHSA-2g4f-4pwh-qvx6"},{"rule_id":"osv/GHSA-w5vr-8v7q-w6rv","severity":"medium","message":"baseline-browser-mapping@2.9.19 (npm) is affected by GHSA-w5vr-8v7q-w6rv","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"baseline-browser-mapping@2.9.19 (npm):GHSA-w5vr-8v7q-w6rv"},{"rule_id":"osv/GHSA-f886-m6hf-6m8v","severity":"medium","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-f886-m6hf-6m8v","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-f886-m6hf-6m8v"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@1.1.12 (npm) is affected by GHSA-q2hr-2g5m-vwhr","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@1.1.12 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-f886-m6hf-6m8v","severity":"medium","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-f886-m6hf-6m8v","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-f886-m6hf-6m8v"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@2.0.2 (npm) is affected by GHSA-q2hr-2g5m-vwhr","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@2.0.2 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-h67p-54hq-rp68","severity":"medium","message":"js-yaml@4.1.1 (npm) is affected by GHSA-h67p-54hq-rp68","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"js-yaml@4.1.1 (npm):GHSA-h67p-54hq-rp68"},{"rule_id":"osv/GHSA-g3hv-75wg-m249","severity":"medium","message":"minimatch@9.0.5 (npm) is affected by GHSA-g3hv-75wg-m249","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"minimatch@9.0.5 (npm):GHSA-g3hv-75wg-m249"},{"rule_id":"osv/GHSA-3v7f-55p6-f55p","severity":"medium","message":"picomatch@2.3.1 (npm) is affected by GHSA-3v7f-55p6-f55p","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"picomatch@2.3.1 (npm):GHSA-3v7f-55p6-f55p"},{"rule_id":"osv/GHSA-3v7f-55p6-f55p","severity":"medium","message":"picomatch@4.0.3 (npm) is affected by GHSA-3v7f-55p6-f55p","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"picomatch@4.0.3 (npm):GHSA-3v7f-55p6-f55p"},{"rule_id":"osv/GHSA-fxqj-rqcc-2cmp","severity":"medium","message":"postcss@8.5.6 (npm) is affected by GHSA-fxqj-rqcc-2cmp","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-fxqj-rqcc-2cmp"},{"rule_id":"osv/GHSA-qx2v-qp2m-jg93","severity":"medium","message":"postcss@8.5.6 (npm) is affected by GHSA-qx2v-qp2m-jg93","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"postcss@8.5.6 (npm):GHSA-qx2v-qp2m-jg93"},{"rule_id":"osv/GHSA-rj75-hqrm-r3gf","severity":"medium","message":"postcss-selector-parser@6.1.2 (npm) is affected by GHSA-rj75-hqrm-r3gf; also in Crypto/lab5/frontend/package-lock.json","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"postcss-selector-parser@6.1.2 (npm):GHSA-rj75-hqrm-r3gf"},{"rule_id":"osv/GHSA-w9m9-85wc-3x92","severity":"medium","message":"postcss-selector-parser@6.1.2 (npm) is affected by GHSA-w9m9-85wc-3x92; also in Crypto/lab5/frontend/package-lock.json","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"postcss-selector-parser@6.1.2 (npm):GHSA-w9m9-85wc-3x92"},{"rule_id":"osv/GHSA-4w7w-66w2-5vf9","severity":"medium","message":"vite@7.3.1 (npm) is affected by GHSA-4w7w-66w2-5vf9","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"vite@7.3.1 (npm):GHSA-4w7w-66w2-5vf9"},{"rule_id":"osv/GHSA-698v-4r3x-3vcv","severity":"medium","message":"vite@7.3.1 (npm) is affected by GHSA-698v-4r3x-3vcv","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"vite@7.3.1 (npm):GHSA-698v-4r3x-3vcv"},{"rule_id":"osv/GHSA-fx2h-pf6j-xcff","severity":"medium","message":"vite@7.3.1 (npm) is affected by GHSA-fx2h-pf6j-xcff","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"vite@7.3.1 (npm):GHSA-fx2h-pf6j-xcff"},{"rule_id":"osv/GHSA-r825-w8mm-5pxw","severity":"medium","message":"vite@7.3.1 (npm) is affected by GHSA-r825-w8mm-5pxw","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"vite@7.3.1 (npm):GHSA-r825-w8mm-5pxw"},{"rule_id":"osv/GHSA-rq7h-c2jc-7f22","severity":"medium","message":"vite@7.3.1 (npm) is affected by GHSA-rq7h-c2jc-7f22","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"vite@7.3.1 (npm):GHSA-rq7h-c2jc-7f22"},{"rule_id":"osv/GHSA-v6wh-96g9-6wx3","severity":"medium","message":"vite@7.3.1 (npm) is affected by GHSA-v6wh-96g9-6wx3","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"vite@7.3.1 (npm):GHSA-v6wh-96g9-6wx3"},{"rule_id":"osv/GHSA-vvgj-x9jq-8cj9","severity":"medium","message":"github.com/quic-go/quic-go@0.59.0 (Go) is affected by GO-2026-5676, GHSA-vvgj-x9jq-8cj9","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"github.com/quic-go/quic-go@0.59.0 (Go):GHSA-vvgj-x9jq-8cj9"},{"rule_id":"osv/GHSA-cp6g-7hqx-qxhp","severity":"medium","message":"go.mongodb.org/mongo-driver@1.17.4 (Go) is affected by GO-2026-5327, GHSA-cp6g-7hqx-qxhp","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"go.mongodb.org/mongo-driver@1.17.4 (Go):GHSA-cp6g-7hqx-qxhp"},{"rule_id":"osv/GHSA-45gg-vh54-h5m9","severity":"medium","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-5014, GHSA-45gg-vh54-h5m9","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GHSA-45gg-vh54-h5m9"},{"rule_id":"osv/GHSA-78mq-xcr3-xm33","severity":"medium","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-5015, GHSA-78mq-xcr3-xm33","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GHSA-78mq-xcr3-xm33"},{"rule_id":"osv/GHSA-qpw4-5x99-6vjp","severity":"medium","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-5016, GHSA-qpw4-5x99-6vjp","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GHSA-qpw4-5x99-6vjp"},{"rule_id":"osv/GHSA-9m57-25v3-79x9","severity":"medium","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-5033, GHSA-9m57-25v3-79x9","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GHSA-9m57-25v3-79x9"},{"rule_id":"osv/GO-2026-5932","severity":"medium","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-5932","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GO-2026-5932"},{"rule_id":"osv/GO-2026-6303","severity":"medium","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-6303","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GO-2026-6303"},{"rule_id":"osv/GO-2026-6354","severity":"medium","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-6354","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GO-2026-6354"},{"rule_id":"osv/GO-2026-6355","severity":"medium","message":"golang.org/x/crypto@0.48.0 (Go) is affected by GO-2026-6355","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/crypto@0.48.0 (Go):GO-2026-6355"},{"rule_id":"osv/GO-2026-4918","severity":"medium","message":"golang.org/x/net@0.51.0 (Go) is affected by GO-2026-4918","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/net@0.51.0 (Go):GO-2026-4918"},{"rule_id":"osv/GO-2026-5025","severity":"medium","message":"golang.org/x/net@0.51.0 (Go) is affected by GO-2026-5025","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/net@0.51.0 (Go):GO-2026-5025"},{"rule_id":"osv/GO-2026-5026","severity":"medium","message":"golang.org/x/net@0.51.0 (Go) is affected by GO-2026-5026","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/net@0.51.0 (Go):GO-2026-5026"},{"rule_id":"osv/GO-2026-5027","severity":"medium","message":"golang.org/x/net@0.51.0 (Go) is affected by GO-2026-5027","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/net@0.51.0 (Go):GO-2026-5027"},{"rule_id":"osv/GHSA-5cv4-jp36-h3mw","severity":"medium","message":"golang.org/x/net@0.51.0 (Go) is affected by GO-2026-5028, GHSA-5cv4-jp36-h3mw","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/net@0.51.0 (Go):GHSA-5cv4-jp36-h3mw"},{"rule_id":"osv/GO-2026-5029","severity":"medium","message":"golang.org/x/net@0.51.0 (Go) is affected by GO-2026-5029","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/net@0.51.0 (Go):GO-2026-5029"},{"rule_id":"osv/GO-2026-5030","severity":"medium","message":"golang.org/x/net@0.51.0 (Go) is affected by GO-2026-5030","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/net@0.51.0 (Go):GO-2026-5030"},{"rule_id":"osv/GO-2026-5942","severity":"medium","message":"golang.org/x/net@0.51.0 (Go) is affected by GO-2026-5942","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/net@0.51.0 (Go):GO-2026-5942"},{"rule_id":"osv/GO-2026-6603","severity":"medium","message":"golang.org/x/net@0.51.0 (Go) is affected by GO-2026-6603","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/net@0.51.0 (Go):GO-2026-6603"},{"rule_id":"osv/GO-2026-6610","severity":"medium","message":"golang.org/x/net@0.51.0 (Go) is affected by GO-2026-6610","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/net@0.51.0 (Go):GO-2026-6610"},{"rule_id":"osv/GO-2026-6611","severity":"medium","message":"golang.org/x/net@0.51.0 (Go) is affected by GO-2026-6611","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/net@0.51.0 (Go):GO-2026-6611"},{"rule_id":"osv/GO-2026-6612","severity":"medium","message":"golang.org/x/net@0.51.0 (Go) is affected by GO-2026-6612","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/net@0.51.0 (Go):GO-2026-6612"},{"rule_id":"osv/GO-2026-6617","severity":"medium","message":"golang.org/x/net@0.51.0 (Go) is affected by GO-2026-6617","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/net@0.51.0 (Go):GO-2026-6617"},{"rule_id":"osv/GO-2026-6860","severity":"medium","message":"golang.org/x/net@0.51.0 (Go) is affected by GO-2026-6860","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/net@0.51.0 (Go):GO-2026-6860"},{"rule_id":"osv/GO-2026-6866","severity":"medium","message":"golang.org/x/net@0.51.0 (Go) is affected by GO-2026-6866","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/net@0.51.0 (Go):GO-2026-6866"},{"rule_id":"osv/GO-2026-5024","severity":"medium","message":"golang.org/x/sys@0.41.0 (Go) is affected by GO-2026-5024","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/sys@0.41.0 (Go):GO-2026-5024"},{"rule_id":"osv/GO-2026-5970","severity":"medium","message":"golang.org/x/text@0.34.0 (Go) is affected by GO-2026-5970","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/text@0.34.0 (Go):GO-2026-5970"},{"rule_id":"osv/GO-2026-6629","severity":"medium","message":"golang.org/x/text@0.34.0 (Go) is affected by GO-2026-6629","path":"Crypto/lab5/backend/go.mod","line":null,"fingerprint":"golang.org/x/text@0.34.0 (Go):GO-2026-6629"},{"rule_id":"osv/GHSA-w5vr-8v7q-w6rv","severity":"medium","message":"baseline-browser-mapping@2.10.28 (npm) is affected by GHSA-w5vr-8v7q-w6rv","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"baseline-browser-mapping@2.10.28 (npm):GHSA-w5vr-8v7q-w6rv"},{"rule_id":"osv/GHSA-q2hr-2g5m-vwhr","severity":"medium","message":"brace-expansion@5.0.6 (npm) is affected by GHSA-q2hr-2g5m-vwhr","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"brace-expansion@5.0.6 (npm):GHSA-q2hr-2g5m-vwhr"},{"rule_id":"osv/GHSA-g3hv-75wg-m249","severity":"medium","message":"minimatch@10.2.5 (npm) is affected by GHSA-g3hv-75wg-m249","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"minimatch@10.2.5 (npm):GHSA-g3hv-75wg-m249"},{"rule_id":"osv/GHSA-fxqj-rqcc-2cmp","severity":"medium","message":"postcss@8.5.14 (npm) is affected by GHSA-fxqj-rqcc-2cmp","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"postcss@8.5.14 (npm):GHSA-fxqj-rqcc-2cmp"},{"rule_id":"osv/GHSA-698v-4r3x-3vcv","severity":"medium","message":"vite@8.0.11 (npm) is affected by GHSA-698v-4r3x-3vcv","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"vite@8.0.11 (npm):GHSA-698v-4r3x-3vcv"},{"rule_id":"osv/GHSA-fx2h-pf6j-xcff","severity":"medium","message":"vite@8.0.11 (npm) is affected by GHSA-fx2h-pf6j-xcff","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"vite@8.0.11 (npm):GHSA-fx2h-pf6j-xcff"},{"rule_id":"osv/GHSA-r825-w8mm-5pxw","severity":"medium","message":"vite@8.0.11 (npm) is affected by GHSA-r825-w8mm-5pxw","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"vite@8.0.11 (npm):GHSA-r825-w8mm-5pxw"},{"rule_id":"osv/GHSA-rq7h-c2jc-7f22","severity":"medium","message":"vite@8.0.11 (npm) is affected by GHSA-rq7h-c2jc-7f22","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"vite@8.0.11 (npm):GHSA-rq7h-c2jc-7f22"},{"rule_id":"osv/GHSA-v6wh-96g9-6wx3","severity":"medium","message":"vite@8.0.11 (npm) is affected by GHSA-v6wh-96g9-6wx3","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"vite@8.0.11 (npm):GHSA-v6wh-96g9-6wx3"},{"rule_id":"osv/GHSA-gh4c-6fx4-qh6g","severity":"medium","message":"urllib3@2.7.0 (PyPI) is affected by PYSEC-2026-4176, GHSA-gh4c-6fx4-qh6g","path":"Crypto/lab7/requirements.txt","line":null,"fingerprint":"urllib3@2.7.0 (PyPI):GHSA-gh4c-6fx4-qh6g"},{"rule_id":"osv/GHSA-768j-98cg-p3fv","severity":"medium","message":"fonttools@4.60.1 (PyPI) is affected by PYSEC-2026-1389, GHSA-768j-98cg-p3fv","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"fonttools@4.60.1 (PyPI):GHSA-768j-98cg-p3fv"},{"rule_id":"osv/GHSA-wjx4-4jcj-g98j","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-165, GHSA-wjx4-4jcj-g98j","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-wjx4-4jcj-g98j"},{"rule_id":"osv/GHSA-5xmw-vc9v-4wf2","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-2251, GHSA-5xmw-vc9v-4wf2","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-5xmw-vc9v-4wf2"},{"rule_id":"osv/GHSA-4x4j-2g7c-83w6","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-2257, GHSA-4x4j-2g7c-83w6","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-4x4j-2g7c-83w6"},{"rule_id":"osv/GHSA-r73j-pqj5-w3x7","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-2874, GHSA-r73j-pqj5-w3x7","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-r73j-pqj5-w3x7"},{"rule_id":"osv/GHSA-fj7v-r99m-22gq","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-3494, GHSA-fj7v-r99m-22gq","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-fj7v-r99m-22gq"},{"rule_id":"osv/GHSA-654x-cwwv-5j9c","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4336, GHSA-654x-cwwv-5j9c","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-654x-cwwv-5j9c"},{"rule_id":"osv/GHSA-p8hx-v2p6-rp84","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4337, GHSA-p8hx-v2p6-rp84","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-p8hx-v2p6-rp84"},{"rule_id":"osv/GHSA-4rm8-3hmm-39fg","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by PYSEC-2026-4340, GHSA-4rm8-3hmm-39fg","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-4rm8-3hmm-39fg"},{"rule_id":"osv/GHSA-24rc-8hj2-v98c","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by GHSA-24rc-8hj2-v98c","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-24rc-8hj2-v98c"},{"rule_id":"osv/GHSA-254f-3936-288h","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by GHSA-254f-3936-288h","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-254f-3936-288h"},{"rule_id":"osv/GHSA-462x-pgg6-55fp","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by GHSA-462x-pgg6-55fp","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-462x-pgg6-55fp"},{"rule_id":"osv/GHSA-74r2-7ff9-mjj2","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by GHSA-74r2-7ff9-mjj2","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-74r2-7ff9-mjj2"},{"rule_id":"osv/GHSA-fc9g-5qg7-mf45","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by GHSA-fc9g-5qg7-mf45","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-fc9g-5qg7-mf45"},{"rule_id":"osv/GHSA-rfgq-q3w2-pmv2","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by GHSA-rfgq-q3w2-pmv2","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-rfgq-q3w2-pmv2"},{"rule_id":"osv/GHSA-vx6w-vv9f-6gvg","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by GHSA-vx6w-vv9f-6gvg","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-vx6w-vv9f-6gvg"},{"rule_id":"osv/GHSA-wqgw-9xfh-qf2g","severity":"medium","message":"pillow@12.0.0 (PyPI) is affected by GHSA-wqgw-9xfh-qf2g","path":"Discrete Math/lab6/requirements.txt","line":null,"fingerprint":"pillow@12.0.0 (PyPI):GHSA-wqgw-9xfh-qf2g"},{"rule_id":"osv/GHSA-5239-wwwm-4pmq","severity":"low","message":"pygments@2.19.2 (PyPI) is affected by PYSEC-2026-2987, GHSA-5239-wwwm-4pmq","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"pygments@2.19.2 (PyPI):GHSA-5239-wwwm-4pmq"},{"rule_id":"osv/GHSA-6jv3-5f52-599m","severity":"low","message":"python-multipart@0.0.22 (PyPI) is affected by PYSEC-2026-3037, GHSA-6jv3-5f52-599m","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"python-multipart@0.0.22 (PyPI):GHSA-6jv3-5f52-599m"},{"rule_id":"osv/GHSA-v9pg-7xvm-68hf","severity":"low","message":"python-multipart@0.0.22 (PyPI) is affected by PYSEC-2026-3040, GHSA-v9pg-7xvm-68hf","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"python-multipart@0.0.22 (PyPI):GHSA-v9pg-7xvm-68hf"},{"rule_id":"osv/GHSA-vffw-93wf-4j4q","severity":"low","message":"python-multipart@0.0.22 (PyPI) is affected by PYSEC-2026-3041, GHSA-vffw-93wf-4j4q","path":"Crypto/lab1/backend/requirements.txt","line":null,"fingerprint":"python-multipart@0.0.22 (PyPI):GHSA-vffw-93wf-4j4q"},{"rule_id":"osv/GHSA-4x5r-pxfx-6jf8","severity":"low","message":"@babel/core@7.29.0 (npm) is affected by GHSA-4x5r-pxfx-6jf8; also in Crypto/lab5/frontend/package-lock.json","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"@babel/core@7.29.0 (npm):GHSA-4x5r-pxfx-6jf8"},{"rule_id":"osv/GHSA-g7r4-m6w7-qqqr","severity":"low","message":"esbuild@0.27.3 (npm) is affected by GHSA-g7r4-m6w7-qqqr","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"esbuild@0.27.3 (npm):GHSA-g7r4-m6w7-qqqr"},{"rule_id":"osv/GHSA-9jrq-w75r-8gcw","severity":"low","message":"vite@7.3.1 (npm) is affected by GHSA-9jrq-w75r-8gcw","path":"Crypto/lab1/frontend/package-lock.json","line":null,"fingerprint":"vite@7.3.1 (npm):GHSA-9jrq-w75r-8gcw"},{"rule_id":"osv/GHSA-9jrq-w75r-8gcw","severity":"low","message":"vite@8.0.11 (npm) is affected by GHSA-9jrq-w75r-8gcw","path":"Crypto/lab5/frontend/package-lock.json","line":null,"fingerprint":"vite@8.0.11 (npm):GHSA-9jrq-w75r-8gcw"}],"evidence":[],"data":{"ecosystems":["Go","PyPI","npm"]},"error":null},{"analyzer":"sec-actions","pillar":"security","status":"skipped","tool_version":null,"metrics":{},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-posture","pillar":"security","status":"ok","tool_version":null,"metrics":{"check:security_policy":0.0,"check:dependency_updates":0.0,"check:signed_commits":0.0,"check:lockfiles":1.0,"signed_commit_share":0.0,"unpinned_manifests":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"sec-distribution","pillar":"security","status":"ok","tool_version":null,"metrics":{"signals":0.0,"binary_assets":0.0,"suspicious":0.0},"findings":[],"evidence":[],"data":{"signals":[],"suspicious":false,"unusual_traction":false,"metadata":true},"error":null},{"analyzer":"qual-complexity","pillar":"quality","status":"ok","tool_version":"lizard 1.25.1","metrics":{"functions":1100.0,"function_nloc":15659.0,"mean_ccn":3.22,"p90_ccn":7.0,"complex_functions":15.0,"long_functions":10.0,"many_param_functions":7.0,"risky_nloc_share":0.184},"findings":[],"evidence":[{"kind":"complex-function","description":"voice_age in Programming Methods/lab7/Task3.py: complexity 32, 39 lines","ref":"Programming Methods/lab7/Task3.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/Programming Methods/lab7/Task3.py#L1","weight":0.5333333333333333},{"kind":"complex-function","description":"find_k_shortest_paths in Discrete Math/graphs/lab12/main.py: complexity 27, 112 lines","ref":"Discrete Math/graphs/lab12/main.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/Discrete Math/graphs/lab12/main.py#L118","weight":0.45},{"kind":"complex-function","description":"_select_essential_and_cover in Discrete Math/lab5/McCluskey/main.py: complexity 27, 58 lines","ref":"Discrete Math/lab5/McCluskey/main.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/Discrete Math/lab5/McCluskey/main.py#L173","weight":0.45},{"kind":"complex-function","description":"draw_weighted_graph_with_paths in Discrete Math/graphs/lab12/main.py: complexity 26, 91 lines","ref":"Discrete Math/graphs/lab12/main.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/Discrete Math/graphs/lab12/main.py#L400","weight":0.43333333333333335},{"kind":"complex-function","description":"draw_graph in Discrete Math/graphs/lab13/main.py: complexity 25, 91 lines","ref":"Discrete Math/graphs/lab13/main.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/Discrete Math/graphs/lab13/main.py#L368","weight":0.4166666666666667},{"kind":"complex-function","description":"draw_weighted_graph_with_mst in Discrete Math/graphs/lab11/main.py: complexity 22, 77 lines","ref":"Discrete Math/graphs/lab11/main.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/Discrete Math/graphs/lab11/main.py#L275","weight":0.36666666666666664},{"kind":"complex-function","description":"draw_weighted_graph_with_path in Discrete Math/graphs/lab10/main.py: complexity 21, 78 lines","ref":"Discrete Math/graphs/lab10/main.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/Discrete Math/graphs/lab10/main.py#L275","weight":0.35},{"kind":"complex-function","description":"analyze_digraph_connectivity in Discrete Math/graphs/lab13/main.py: complexity 21, 30 lines","ref":"Discrete Math/graphs/lab13/main.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/Discrete Math/graphs/lab13/main.py#L111","weight":0.35},{"kind":"complex-function","description":"draw_weighted_graph in Discrete Math/graphs/lab9/main.py: complexity 19, 83 lines","ref":"Discrete Math/graphs/lab9/main.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/Discrete Math/graphs/lab9/main.py#L313","weight":0.31666666666666665},{"kind":"complex-function","description":"main in Crypto/lab10/main.py: complexity 18, 73 lines","ref":"Crypto/lab10/main.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/Crypto/lab10/main.py#L38","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-duplication","pillar":"quality","status":"ok","tool_version":"repotrust-dup-w6","metrics":{"compared_lines":18799.0,"duplicated_lines":5674.0,"duplicated_share":0.3018,"files":364.0},"findings":[],"evidence":[{"kind":"duplicate-code","description":"6+ duplicated lines: APR/lab6/my-prog/main.py:24 and APR/lab6/my-prog/main_fixed.py:52","ref":"APR/lab6/my-prog/main.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/APR/lab6/my-prog/main.py#L24","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: APR/lab6/task5/main.py:8 and APR/lab6/task5/main_fixed.py:11","ref":"APR/lab6/task5/main.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/APR/lab6/task5/main.py#L8","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: APR/lab6/task5/main_fixed.py:4 and APR/lab6/task6/main_fixed.py:4","ref":"APR/lab6/task5/main_fixed.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/APR/lab6/task5/main_fixed.py#L4","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: APR/lab8/Services/crypter.py:93 and APR/lab8/Services/crypter.py:157","ref":"APR/lab8/Services/crypter.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/APR/lab8/Services/crypter.py#L93","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: APR/lab8/fuzzing.py:208 and APR/lab8/fuzzing.py:347","ref":"APR/lab8/fuzzing.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/APR/lab8/fuzzing.py#L208","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Crypto/lab1/frontend/eslint.config.js:8 and Crypto/lab5/frontend/eslint.config.js:8","ref":"Crypto/lab1/frontend/eslint.config.js","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/Crypto/lab1/frontend/eslint.config.js#L8","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Crypto/lab10/core/rsa.py:37 and Crypto/lab6/services/rsa.py:17","ref":"Crypto/lab10/core/rsa.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/Crypto/lab10/core/rsa.py#L37","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Crypto/lab10/main.py:52 and Crypto/lab10/main.py:77","ref":"Crypto/lab10/main.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/Crypto/lab10/main.py#L52","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Crypto/lab10/utils.py:124 and Crypto/lab6/utils.py:38","ref":"Crypto/lab10/utils.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/Crypto/lab10/utils.py#L124","weight":0.3},{"kind":"duplicate-code","description":"6+ duplicated lines: Crypto/lab3/main.py:4 and Crypto/lab3/showcase.py:4","ref":"Crypto/lab3/main.py","url":"https://github.com/Qurclinc/LABs/blob/c3840a408f1f3fd352c359f3932954d5be80c9eb/Crypto/lab3/main.py#L4","weight":0.3}],"data":{},"error":null},{"analyzer":"qual-lint","pillar":"quality","status":"ok","tool_version":"opengrep 1.33.1; rules f1d2b562b414","metrics":{"findings":113.0,"weighted_findings":147.5,"scanned_lines":25689.0,"category:best-practice":72.0,"category:correctness":33.0,"category:maintainability":8.0},"findings":[{"rule_id":"opengrep/python.lang.best-practice.arbitrary-sleep","severity":"high","message":"time.sleep() call; did you mean to leave this in?","path":"APR/lab6/task6/main.py","line":8,"fingerprint":"python.lang.best-practice.arbitrary-sleep:APR/lab6/task6/main.py:8"},{"rule_id":"opengrep/python.lang.maintainability.useless-inner-function","severity":"high","message":"function `show_result` is defined inside a function but never used","path":"APR/lab6/task6/main.py","line":10,"fingerprint":"python.lang.maintainability.useless-inner-function:APR/lab6/task6/main.py:10"},{"rule_id":"opengrep/python.lang.best-practice.open-never-closed","severity":"high","message":"file object opened without corresponding close","path":"APR/lab8/fuzzing.py","line":49,"fingerprint":"python.lang.best-practice.open-never-closed:APR/lab8/fuzzing.py:49"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-without-flush","severity":"high","message":"Using 'tmp.name' without '.flush()' or '.close()' may cause an error because the file may not exist when 'tmp.name' is used. Use '.flush()' or close the file before using 'tmp.name'.","path":"APR/lab8/fuzzing.py","line":50,"fingerprint":"python.lang.correctness.tempfile.tempfile-without-flush:APR/lab8/fuzzing.py:50"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-without-flush","severity":"high","message":"Using 'tmp.name' without '.flush()' or '.close()' may cause an error because the file may not exist when 'tmp.name' is used. Use '.flush()' or close the file before using 'tmp.name'.","path":"APR/lab8/fuzzing.py","line":52,"fingerprint":"python.lang.correctness.tempfile.tempfile-without-flush:APR/lab8/fuzzing.py:52"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-insecure","severity":"high","message":"Use tempfile.NamedTemporaryFile instead. From the official Python documentation: THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may refer to a file that did not exist at some point, but by the time you get around to creating it, someone else may have beaten you to the punch.","path":"APR/lab8/fuzzing.py","line":211,"fingerprint":"python.lang.correctness.tempfile.tempfile-insecure:APR/lab8/fuzzing.py:211"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-insecure","severity":"high","message":"Use tempfile.NamedTemporaryFile instead. From the official Python documentation: THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may refer to a file that did not exist at some point, but by the time you get around to creating it, someone else may have beaten you to the punch.","path":"APR/lab8/fuzzing.py","line":212,"fingerprint":"python.lang.correctness.tempfile.tempfile-insecure:APR/lab8/fuzzing.py:212"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-insecure","severity":"high","message":"Use tempfile.NamedTemporaryFile instead. From the official Python documentation: THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may refer to a file that did not exist at some point, but by the time you get around to creating it, someone else may have beaten you to the punch.","path":"APR/lab8/fuzzing.py","line":213,"fingerprint":"python.lang.correctness.tempfile.tempfile-insecure:APR/lab8/fuzzing.py:213"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-insecure","severity":"high","message":"Use tempfile.NamedTemporaryFile instead. From the official Python documentation: THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may refer to a file that did not exist at some point, but by the time you get around to creating it, someone else may have beaten you to the punch.","path":"APR/lab8/fuzzing.py","line":246,"fingerprint":"python.lang.correctness.tempfile.tempfile-insecure:APR/lab8/fuzzing.py:246"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-insecure","severity":"high","message":"Use tempfile.NamedTemporaryFile instead. From the official Python documentation: THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may refer to a file that did not exist at some point, but by the time you get around to creating it, someone else may have beaten you to the punch.","path":"APR/lab8/fuzzing.py","line":247,"fingerprint":"python.lang.correctness.tempfile.tempfile-insecure:APR/lab8/fuzzing.py:247"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-insecure","severity":"high","message":"Use tempfile.NamedTemporaryFile instead. From the official Python documentation: THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may refer to a file that did not exist at some point, but by the time you get around to creating it, someone else may have beaten you to the punch.","path":"APR/lab8/fuzzing.py","line":271,"fingerprint":"python.lang.correctness.tempfile.tempfile-insecure:APR/lab8/fuzzing.py:271"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-insecure","severity":"high","message":"Use tempfile.NamedTemporaryFile instead. From the official Python documentation: THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may refer to a file that did not exist at some point, but by the time you get around to creating it, someone else may have beaten you to the punch.","path":"APR/lab8/fuzzing.py","line":272,"fingerprint":"python.lang.correctness.tempfile.tempfile-insecure:APR/lab8/fuzzing.py:272"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-insecure","severity":"high","message":"Use tempfile.NamedTemporaryFile instead. From the official Python documentation: THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may refer to a file that did not exist at some point, but by the time you get around to creating it, someone else may have beaten you to the punch.","path":"APR/lab8/fuzzing.py","line":273,"fingerprint":"python.lang.correctness.tempfile.tempfile-insecure:APR/lab8/fuzzing.py:273"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-insecure","severity":"high","message":"Use tempfile.NamedTemporaryFile instead. From the official Python documentation: THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may refer to a file that did not exist at some point, but by the time you get around to creating it, someone else may have beaten you to the punch.","path":"APR/lab8/fuzzing.py","line":296,"fingerprint":"python.lang.correctness.tempfile.tempfile-insecure:APR/lab8/fuzzing.py:296"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-insecure","severity":"high","message":"Use tempfile.NamedTemporaryFile instead. From the official Python documentation: THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may refer to a file that did not exist at some point, but by the time you get around to creating it, someone else may have beaten you to the punch.","path":"APR/lab8/fuzzing.py","line":297,"fingerprint":"python.lang.correctness.tempfile.tempfile-insecure:APR/lab8/fuzzing.py:297"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-insecure","severity":"high","message":"Use tempfile.NamedTemporaryFile instead. From the official Python documentation: THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may refer to a file that did not exist at some point, but by the time you get around to creating it, someone else may have beaten you to the punch.","path":"APR/lab8/fuzzing.py","line":323,"fingerprint":"python.lang.correctness.tempfile.tempfile-insecure:APR/lab8/fuzzing.py:323"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-insecure","severity":"high","message":"Use tempfile.NamedTemporaryFile instead. From the official Python documentation: THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may refer to a file that did not exist at some point, but by the time you get around to creating it, someone else may have beaten you to the punch.","path":"APR/lab8/fuzzing.py","line":324,"fingerprint":"python.lang.correctness.tempfile.tempfile-insecure:APR/lab8/fuzzing.py:324"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-insecure","severity":"high","message":"Use tempfile.NamedTemporaryFile instead. From the official Python documentation: THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may refer to a file that did not exist at some point, but by the time you get around to creating it, someone else may have beaten you to the punch.","path":"APR/lab8/fuzzing.py","line":350,"fingerprint":"python.lang.correctness.tempfile.tempfile-insecure:APR/lab8/fuzzing.py:350"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-insecure","severity":"high","message":"Use tempfile.NamedTemporaryFile instead. From the official Python documentation: THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may refer to a file that did not exist at some point, but by the time you get around to creating it, someone else may have beaten you to the punch.","path":"APR/lab8/fuzzing.py","line":351,"fingerprint":"python.lang.correctness.tempfile.tempfile-insecure:APR/lab8/fuzzing.py:351"},{"rule_id":"opengrep/python.lang.correctness.tempfile.tempfile-insecure","severity":"high","message":"Use tempfile.NamedTemporaryFile instead. From the official Python documentation: THIS FUNCTION IS UNSAFE AND SHOULD NOT BE USED. The file name may refer to a file that did not exist at some point, but by the time you get around to creating it, someone else may have beaten you to the punch.","path":"APR/lab8/fuzzing.py","line":352,"fingerprint":"python.lang.correctness.tempfile.tempfile-insecure:APR/lab8/fuzzing.py:352"},{"rule_id":"opengrep/python.lang.correctness.common-mistakes.identical-is-comparison","severity":"high","message":"Found identical comparison using is. Ensure this is what you intended.","path":"APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py","line":224,"fingerprint":"python.lang.correctness.common-mistakes.identical-is-comparison:APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py:224"},{"rule_id":"opengrep/python.lang.maintainability.return-not-in-function","severity":"medium","message":"`return` only makes sense inside a function","path":"APR/lab6/my-prog/main_fixed.py","line":145,"fingerprint":"python.lang.maintainability.return-not-in-function:APR/lab6/my-prog/main_fixed.py:145"},{"rule_id":"opengrep/c.lang.correctness.incorrect-use-ato-fn","severity":"medium","message":"Avoid the 'ato*()' family of functions. Their use can lead to undefined behavior, integer overflows, and lack of appropriate error handling. Instead prefer the 'strtol*()' family of functions.","path":"APR/lab6/task2/main.c","line":5,"fingerprint":"c.lang.correctness.incorrect-use-ato-fn:APR/lab6/task2/main.c:5"},{"rule_id":"opengrep/c.lang.correctness.incorrect-use-ato-fn","severity":"medium","message":"Avoid the 'ato*()' family of functions. Their use can lead to undefined behavior, integer overflows, and lack of appropriate error handling. Instead prefer the 'strtol*()' family of functions.","path":"APR/lab6/task2/main.c","line":6,"fingerprint":"c.lang.correctness.incorrect-use-ato-fn:APR/lab6/task2/main.c:6"},{"rule_id":"opengrep/c.lang.correctness.incorrect-use-ato-fn","severity":"medium","message":"Avoid the 'ato*()' family of functions. Their use can lead to undefined behavior, integer overflows, and lack of appropriate error handling. Instead prefer the 'strtol*()' family of functions.","path":"APR/lab6/task2/main_fixed.c","line":30,"fingerprint":"c.lang.correctness.incorrect-use-ato-fn:APR/lab6/task2/main_fixed.c:30"},{"rule_id":"opengrep/c.lang.correctness.incorrect-use-ato-fn","severity":"medium","message":"Avoid the 'ato*()' family of functions. Their use can lead to undefined behavior, integer overflows, and lack of appropriate error handling. Instead prefer the 'strtol*()' family of functions.","path":"APR/lab6/task2/main_fixed.c","line":31,"fingerprint":"c.lang.correctness.incorrect-use-ato-fn:APR/lab6/task2/main_fixed.c:31"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_authenticated\" a function or an attribute? If it is a function, you may have meant current_user.is_authenticated() because current_user.is_authenticated is always true.","path":"APR/lab7/test-web/blueprints/index.py","line":13,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:APR/lab7/test-web/blueprints/index.py:13"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"APR/lab8/fuzzing.py","line":401,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:APR/lab8/fuzzing.py:401"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py","line":203,"fingerprint":"python.requests.best-practice.use-raise-for-status:APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py:203"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py","line":226,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py:226"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py","line":251,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:APR/lab9/attack/CVE-2025-34085/CVE-2025-34085.py:251"},{"rule_id":"opengrep/bash.lang.best-practice.useless-cat","severity":"medium","message":"Useless call to 'cat' in a pipeline. Use '<' and '>' for any command to read from a file or write to a file.","path":"Bash/lab2/task5/task5.sh","line":3,"fingerprint":"bash.lang.best-practice.useless-cat:Bash/lab2/task5/task5.sh:3"},{"rule_id":"opengrep/bash.lang.best-practice.useless-cat","severity":"medium","message":"Useless call to 'cat' in a pipeline. Use '<' and '>' for any command to read from a file or write to a file.","path":"Bash/lab2/task5/task5.sh","line":3,"fingerprint":"bash.lang.best-practice.useless-cat:Bash/lab2/task5/task5.sh:3"},{"rule_id":"opengrep/bash.lang.best-practice.useless-cat","severity":"medium","message":"Useless call to 'cat' in a pipeline. Use '<' and '>' for any command to read from a file or write to a file.","path":"Bash/lab3/task1/task1.sh","line":10,"fingerprint":"bash.lang.best-practice.useless-cat:Bash/lab3/task1/task1.sh:10"},{"rule_id":"opengrep/bash.lang.best-practice.useless-cat","severity":"medium","message":"Useless call to 'cat' in a pipeline. Use '<' and '>' for any command to read from a file or write to a file.","path":"Bash/lab3/task4/task4.sh","line":5,"fingerprint":"bash.lang.best-practice.useless-cat:Bash/lab3/task4/task4.sh:5"},{"rule_id":"opengrep/bash.lang.best-practice.useless-cat","severity":"medium","message":"Useless call to 'cat' in a pipeline. Use '<' and '>' for any command to read from a file or write to a file.","path":"Bash/lab3/task5/task5.sh","line":6,"fingerprint":"bash.lang.best-practice.useless-cat:Bash/lab3/task5/task5.sh:6"},{"rule_id":"opengrep/bash.lang.best-practice.useless-cat","severity":"medium","message":"Useless call to 'cat' in a pipeline. Use '<' and '>' for any command to read from a file or write to a file.","path":"Bash/lab3/task5/task5.sh","line":6,"fingerprint":"bash.lang.best-practice.useless-cat:Bash/lab3/task5/task5.sh:6"},{"rule_id":"opengrep/bash.lang.best-practice.useless-cat","severity":"medium","message":"Useless call to 'cat' in a pipeline. Use '<' and '>' for any command to read from a file or write to a file.","path":"Bash/lab3/task5/task5.sh","line":6,"fingerprint":"bash.lang.best-practice.useless-cat:Bash/lab3/task5/task5.sh:6"},{"rule_id":"opengrep/bash.lang.best-practice.useless-cat","severity":"medium","message":"Useless call to 'cat' in a pipeline. Use '<' and '>' for any command to read from a file or write to a file.","path":"Bash/lab3/task5/task5.sh","line":8,"fingerprint":"bash.lang.best-practice.useless-cat:Bash/lab3/task5/task5.sh:8"},{"rule_id":"opengrep/bash.lang.best-practice.useless-cat","severity":"medium","message":"Useless call to 'cat' in a pipeline. Use '<' and '>' for any command to read from a file or write to a file.","path":"Bash/lab3/task5/task5.sh","line":8,"fingerprint":"bash.lang.best-practice.useless-cat:Bash/lab3/task5/task5.sh:8"},{"rule_id":"opengrep/bash.lang.best-practice.useless-cat","severity":"medium","message":"Useless call to 'cat' in a pipeline. Use '<' and '>' for any command to read from a file or write to a file.","path":"Bash/lab3/task5/task5.sh","line":8,"fingerprint":"bash.lang.best-practice.useless-cat:Bash/lab3/task5/task5.sh:8"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"Crypto/lab10/core/rsa.py","line":120,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:Crypto/lab10/core/rsa.py:120"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"Crypto/lab10/core/rsa.py","line":127,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:Crypto/lab10/core/rsa.py:127"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"Crypto/lab10/main.py","line":90,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:Crypto/lab10/main.py:90"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"Crypto/lab10/main.py","line":91,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:Crypto/lab10/main.py:91"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab10/utils.py","line":96,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab10/utils.py:96"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab10/utils.py","line":96,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab10/utils.py:96"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab10/utils.py","line":111,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab10/utils.py:111"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab10/utils.py","line":111,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab10/utils.py:111"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab10/utils.py","line":127,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab10/utils.py:127"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab10/utils.py","line":127,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab10/utils.py:127"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab10/utils.py","line":128,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab10/utils.py:128"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab10/utils.py","line":128,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab10/utils.py:128"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab10/utils.py","line":129,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab10/utils.py:129"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab10/utils.py","line":129,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab10/utils.py:129"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab10/utils.py","line":137,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab10/utils.py:137"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab10/utils.py","line":137,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab10/utils.py:137"},{"rule_id":"opengrep/go.lang.correctness.exported_loop_pointer","severity":"medium","message":"`prime` is a loop pointer that may be exported from the loop. This pointer is shared between loop iterations, so the exported reference will always point to the last loop value, which is likely unintentional. To fix, copy the pointer to a new pointer within the loop.","path":"Crypto/lab5/backend/api/primitive_roots.go","line":49,"fingerprint":"go.lang.correctness.exported_loop_pointer:Crypto/lab5/backend/api/primitive_roots.go:49"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab5/test.py","line":17,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab5/test.py:17"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab5/test.py","line":17,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab5/test.py:17"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab5/test.py","line":20,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab5/test.py:20"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab5/test.py","line":20,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab5/test.py:20"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab5/test.py","line":23,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab5/test.py:23"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab5/test.py","line":23,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab5/test.py:23"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab5/test.py","line":26,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab5/test.py:26"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab5/test.py","line":26,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab5/test.py:26"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab5/test.py","line":29,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab5/test.py:29"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab5/test.py","line":29,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab5/test.py:29"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab5/test.py","line":35,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab5/test.py:35"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab5/test.py","line":35,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab5/test.py:35"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab5/test.py","line":41,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab5/test.py:41"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab5/test.py","line":41,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab5/test.py:41"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab5/test.py","line":48,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab5/test.py:48"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab5/test.py","line":48,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab5/test.py:48"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab5/test.py","line":55,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab5/test.py:55"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab5/test.py","line":55,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab5/test.py:55"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab5/test.py","line":62,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab5/test.py:62"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab5/test.py","line":62,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab5/test.py:62"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab6/utils.py","line":29,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab6/utils.py:29"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab6/utils.py","line":29,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab6/utils.py:29"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab6/utils.py","line":34,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab6/utils.py:34"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab6/utils.py","line":34,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab6/utils.py:34"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab6/utils.py","line":41,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab6/utils.py:41"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab6/utils.py","line":41,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab6/utils.py:41"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab6/utils.py","line":42,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab6/utils.py:42"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab6/utils.py","line":42,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab6/utils.py:42"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab6/utils.py","line":43,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab6/utils.py:43"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab6/utils.py","line":43,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab6/utils.py:43"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab6/utils.py","line":51,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab6/utils.py:51"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab6/utils.py","line":51,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab6/utils.py:51"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab7/wmf/user.py","line":49,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab7/wmf/user.py:49"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab7/wmf/user.py","line":49,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab7/wmf/user.py:49"},{"rule_id":"opengrep/python.requests.best-practice.use-raise-for-status","severity":"medium","message":"There's an HTTP request made with requests, but the raise_for_status() utility method isn't used. This can result in request errors going unnoticed and your code behaving in unexpected ways, such as if your authorization API returns a 500 error while you're only checking for a 401.","path":"Crypto/lab7/wmf/user.py","line":57,"fingerprint":"python.requests.best-practice.use-raise-for-status:Crypto/lab7/wmf/user.py:57"},{"rule_id":"opengrep/python.requests.best-practice.use-timeout","severity":"medium","message":"Detected a 'requests' call without a timeout set. By default, 'requests' calls wait until the connection is closed. This means a 'requests' call without a timeout will hang the program if a response is never received. Consider setting a timeout for all 'requests'.","path":"Crypto/lab7/wmf/user.py","line":57,"fingerprint":"python.requests.best-practice.use-timeout:Crypto/lab7/wmf/user.py:57"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"Crypto/lab8/galois.py","line":11,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:Crypto/lab8/galois.py:11"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"Crypto/lab9/core/galois.py","line":13,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:Crypto/lab9/core/galois.py:13"},{"rule_id":"opengrep/python.lang.maintainability.useless-if-body","severity":"medium","message":"Useless if statement; both blocks have the same body","path":"Numerical Analysis/lab4/Ekobi.py","line":11,"fingerprint":"python.lang.maintainability.useless-if-body:Numerical Analysis/lab4/Ekobi.py:11"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_real\" a function or an attribute? If it is a function, you may have meant root.is_real() because root.is_real is always true.","path":"Numerical Analysis/lab4/Ekobi.py","line":35,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:Numerical Analysis/lab4/Ekobi.py:35"},{"rule_id":"opengrep/python.lang.maintainability.is-function-without-parentheses","severity":"medium","message":"Is \"is_real\" a function or an attribute? If it is a function, you may have meant root.is_real() because root.is_real is always true.","path":"Numerical Analysis/lab4/Zeidel.py","line":29,"fingerprint":"python.lang.maintainability.is-function-without-parentheses:Numerical Analysis/lab4/Zeidel.py:29"},{"rule_id":"opengrep/python.lang.maintainability.return-not-in-function","severity":"medium","message":"`return` only makes sense inside a function","path":"Programming Methods/lab2/task3.py","line":6,"fingerprint":"python.lang.maintainability.return-not-in-function:Programming Methods/lab2/task3.py:6"},{"rule_id":"opengrep/python.lang.maintainability.return-not-in-function","severity":"medium","message":"`return` only makes sense inside a function","path":"Programming Methods/lab2/task4.py","line":11,"fingerprint":"python.lang.maintainability.return-not-in-function:Programming Methods/lab2/task4.py:11"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"Programming Methods/lab8/Task4.py","line":5,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:Programming Methods/lab8/Task4.py:5"},{"rule_id":"opengrep/python.lang.best-practice.unspecified-open-encoding","severity":"medium","message":"Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding=\"utf-8\").","path":"Programming Methods/lab9/Task3.py","line":6,"fingerprint":"python.lang.best-practice.unspecified-open-encoding:Programming Methods/lab9/Task3.py:6"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"Bash/lab2/task1/task1.sh","line":9,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:Bash/lab2/task1/task1.sh:9"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"Bash/lab2/task1/task1.sh","line":10,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:Bash/lab2/task1/task1.sh:10"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"Bash/lab3/task6.sh","line":4,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:Bash/lab3/task6.sh:4"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"Bash/lab4/task2/task2.sh","line":8,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:Bash/lab4/task2/task2.sh:8"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"Bash/lab4/task4/task4.sh","line":6,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:Bash/lab4/task4/task4.sh:6"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command","severity":"low","message":"Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may use a variable that starts with an underscore e.g. $_X instead of ","path":"Bash/lab4/task5/generator.sh","line":4,"fingerprint":"bash.lang.correctness.unquoted-variable-expansion-in-command:Bash/lab4/task5/generator.sh:4"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-command-substitution-in-command","severity":"low","message":"The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result.","path":"Bash/lab4/task7/generator.sh","line":6,"fingerprint":"bash.lang.correctness.unquoted-command-substitution-in-command:Bash/lab4/task7/generator.sh:6"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-command-substitution-in-command","severity":"low","message":"The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result.","path":"Bash/lab4/task7/generator.sh","line":13,"fingerprint":"bash.lang.correctness.unquoted-command-substitution-in-command:Bash/lab4/task7/generator.sh:13"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-command-substitution-in-command","severity":"low","message":"The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result.","path":"Bash/lab4/task7/generator.sh","line":15,"fingerprint":"bash.lang.correctness.unquoted-command-substitution-in-command:Bash/lab4/task7/generator.sh:15"},{"rule_id":"opengrep/bash.lang.correctness.unquoted-command-substitution-in-command","severity":"low","message":"The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result.","path":"Bash/lab4/task7/generator.sh","line":17,"fingerprint":"bash.lang.correctness.unquoted-command-substitution-in-command:Bash/lab4/task7/generator.sh:17"}],"evidence":[],"data":{},"error":null},{"analyzer":"qual-testing","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:has_tests":0.0,"check:test_ratio":0.0,"check:ci_present":0.0,"check:ci_runs_tests":0.0,"check:ci_runs_lint":0.0,"check:tests_cochange":0.0,"test_lines":0.0,"source_lines":25689.0,"test_ratio":0.0,"ci_files":0.0,"cochange_share":0.0,"cochange_commits":35.0},"findings":[],"evidence":[],"data":{"test_commands":[],"lint_commands":[]},"error":null},{"analyzer":"qual-docs","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:readme":0.0,"check:license":0.0,"check:contributing":0.0,"check:changelog":0.0,"readme_lines":0.0},"findings":[],"evidence":[],"data":{},"error":null},{"analyzer":"qual-type-safety","pillar":"quality","status":"ok","tool_version":null,"metrics":{"check:strict_config":0.0511,"check:low_escape_density":1.0,"escapes":14.0,"escapes_per_kloc":0.727},"findings":[],"evidence":[{"kind":"typing","description":"TypeScript strict type checking: Crypto/lab1/frontend/tsconfig.app.json","ref":"Crypto/lab1/frontend/tsconfig.app.json","url":null,"weight":0.0}],"data":{},"error":null}],"flags":[]}