{
  "product": "Cloth Lab",
  "version": "0.7.0",
  "checked_at": "2026-09-26T04:34:12.020958+00:00",
  "conclusion": "No threats detected by the completed scans; the checks listed below passed. This is a maintainer release check, not independent security certification.",
  "files": [
    {
      "filename": "Cloth_Lab_0.5_Garment_Example.blend",
      "bytes": 2492194,
      "sha256": "266c2a1b26efa8edaaf27b897a70c343865eb35a4ece57c74b84fbe6f17a9efc"
    },
    {
      "filename": "Cloth_Lab_0.5_Six_Patterns.blend",
      "bytes": 102815,
      "sha256": "ec4842bc4dce5b00546235856628204bf7a9d00da54f12f099464c0a6a277b13"
    },
    {
      "filename": "Cloth_Lab_0.6_Dynamic_Tearing.blend",
      "bytes": 1320651,
      "sha256": "bef1906b13f5ddd78b219629416e2f9247288c7774670240a77340a49ee73e71"
    },
    {
      "filename": "Cloth_Lab_0.7_Self_Contact.blend",
      "bytes": 594362,
      "sha256": "d648de8e14ed6b21277ef8f78568a9fd33f300a2ceb762366aa2851f6ae0d986"
    },
    {
      "filename": "Cloth_Lab_0.7_Tearing_Contact.blend",
      "bytes": 487607,
      "sha256": "57659007585629574f92a2a506a8701b98c26395b8db6ce48eee35e674d19515"
    },
    {
      "filename": "Cloth_Lab_v0.7.zip",
      "bytes": 26612538,
      "sha256": "c461bdca87709aa76ed14722e0d04a319f9ef72eae457304bb9e8bb1406abebc"
    },
    {
      "filename": "Cloth_Lab_v0.7_공유용소스.zip",
      "bytes": 26656399,
      "sha256": "0b19a86dad5a2a8fdd62b77a33583c47d268e836d3de649752dbe1b679bffb7d"
    }
  ],
  "virustotal": {
    "checked_at": "2026-09-26T04:31:24.298Z",
    "url": "https://www.virustotal.com/gui/file/c461bdca87709aa76ed14722e0d04a319f9ef72eae457304bb9e8bb1406abebc",
    "sha256": "c461bdca87709aa76ed14722e0d04a319f9ef72eae457304bb9e8bb1406abebc",
    "malicious": 0,
    "undetected": 65,
    "type_unsupported": 9,
    "failure": 1,
    "submission": "Only the already-public install ZIP was submitted; source ZIP and examples were scanned locally by Defender."
  },
  "defender": {
    "status": {
      "AMServiceEnabled": true,
      "AntivirusEnabled": true,
      "RealTimeProtectionEnabled": true,
      "AntivirusSignatureVersion": "1.459.407.0",
      "AntivirusSignatureLastUpdated": "2026-09-26T08:28:20+09:00",
      "AMProductVersion": "4.18.26080.4",
      "AMEngineVersion": "1.1.26080.3"
    },
    "final_scan_started": "2026-09-26T13:29:03.6521617+09:00",
    "final_scan_finished": "2026-09-26T13:29:04.5870476+09:00",
    "zip_and_extracted_scan_pass": true,
    "all_download_examples_scan_pass": true,
    "remediation_disabled_for_read_only_scan": true,
    "exclusions_ignored": true
  },
  "package": {
    "install_members": 22,
    "python_files": 15,
    "python_lines": 4304,
    "native_executables": 0,
    "path_crc_checks": true,
    "encrypted_entries": 0,
    "source_matches_installer": true
  },
  "code_review": {
    "method": "AST inventory plus manual review of imports, call sites, file IO, registration, presets, and bundled texts.",
    "findings": [
      "No addon network client or external process launch identified.",
      "No pip/install/dependency downloader identified.",
      "sys.modules is used only to access this package.",
      "Preset loading uses JSON and an allowlist of settings; no eval/exec.",
      "File IO is limited to bundled/native Blender asset loading and user-invoked image/asset loading, export, render and bake.",
      "Blender import machinery creates normal Python bytecode caches.",
      "Source ZIP includes developer tests and build scripts that do not run when installing the addon."
    ],
    "not_a_formal_security_audit": true
  },
  "blender_assets": {
    "checked_files": 6,
    "automatic_script_texts": 0,
    "complex_python_drivers": 0,
    "script_nodes": 0,
    "linked_libraries": 0,
    "unpacked_external_images": 0,
    "note": "Reference scene has simple strength drivers and non-executable instructions/JSON. The six-pattern file is an asset library."
  },
  "runtime": [
    {
      "blender": "4.5.14 LTS",
      "phase": "install",
      "checks": {
        "isolated_user_paths": true,
        "automatic_blend_scripts_disabled": true,
        "blender_offline": true,
        "install_and_enable_from_final_zip": true,
        "basic_cloth_creation": true,
        "user_requested_asset_save_load": true,
        "save_isolated_preferences": true,
        "no_observed_addon_network_or_process_actions": true
      },
      "python_audit_event_count": 189,
      "blocked_events": 0
    },
    {
      "blender": "4.5.14 LTS",
      "phase": "restart",
      "checks": {
        "isolated_user_paths": true,
        "automatic_blend_scripts_disabled": true,
        "blender_offline": true,
        "enabled_after_restart": true,
        "disable_removes_registration": true,
        "reenable": true,
        "uninstall": true,
        "no_observed_addon_network_or_process_actions": true
      },
      "python_audit_event_count": 0,
      "blocked_events": 0
    },
    {
      "blender": "5.2.2 LTS",
      "phase": "install",
      "checks": {
        "isolated_user_paths": true,
        "automatic_blend_scripts_disabled": true,
        "blender_offline": true,
        "install_and_enable_from_final_zip": true,
        "basic_cloth_creation": true,
        "user_requested_asset_save_load": true,
        "self_collision_example_replay": true,
        "save_isolated_preferences": true,
        "no_observed_addon_network_or_process_actions": true
      },
      "python_audit_event_count": 170,
      "blocked_events": 0
    },
    {
      "blender": "5.2.2 LTS",
      "phase": "restart",
      "checks": {
        "isolated_user_paths": true,
        "automatic_blend_scripts_disabled": true,
        "blender_offline": true,
        "enabled_after_restart": true,
        "disable_removes_registration": true,
        "reenable": true,
        "uninstall": true,
        "no_observed_addon_network_or_process_actions": true
      },
      "python_audit_event_count": 0,
      "blocked_events": 0
    }
  ],
  "limitations": [
    "No separate freshly installed Windows VM was available; new Blender user/config directories on this Windows host were used.",
    "No macOS/Linux or enterprise endpoint policy validation.",
    "Python audit hooks do not capture every native operation; not an OS-wide network/system-call trace.",
    "Chrome/Edge reputation warnings were not independently certified; successful downloading does not prove absence of future warnings.",
    "Undetected does not guarantee absence of every vulnerability or future detection. SHA-256 confirms byte identity, not safety.",
    "VirusTotal result is for the install ZIP. Unsupported/failed engines are not counted as passed."
  ],
  "harness_note": "Initial background uninstall test lacked a Blender area context and failed at UI redraw after removal. Repeated with a valid area context; both full install/restart/uninstall runs passed. No addon code change.",
  "references": [
    "https://learn.microsoft.com/en-us/defender-endpoint/command-line-arguments-microsoft-defender-antivirus",
    "https://developer.blender.org/docs/handbook/extensions/addon_guidelines/",
    "https://docs.virustotal.com/docs/how-it-works"
  ]
}