github microsoft/msticpy v3.1.0
ScanMalware TI Provider, Python 3.14 and dependency updates

3 hours ago

MSTICPy 3.1.0

MSTICPy 3.1.0 adds a new ScanMalware threat-intelligence provider,
introduces Python 3.14 support, improves compatibility with current IPython
and NetworkX releases, and includes fixes for SecurityGraph authentication
and outbound HTTP user-agent handling.

Features

  • Added the ScanMalware threat-intelligence provider for DNS names,
    hostnames, URLs, IPv4, and IPv6 observables. The provider supports verdict
    lookups for hosts and URLs, passive-DNS context for addresses, and quick
    query modes for lower-overhead bulk lookups. No configured API credentials
    are required. (#938, contributed by @jonaslejon)

Enhancements

  • Improved ScanMalware result attribution so redirects cannot lend their
    verdict or display metadata to an unrelated host or URL. Failed secondary
    verdict requests degrade gracefully to the available scan result. (#938)
  • Added Python 3.14 to the supported package classifiers and CI test matrix
    while retaining support for Python 3.10 through 3.13. (#929)
  • Hardened GitHub Actions workflows by pinning actions to immutable commit
    SHAs and adding grouped Dependabot updates with a cooldown period. (#935,
    contributed by @danfiedler-msft)

Fixes

  • Fixed SecurityGraph client-credential authentication by using the
    Microsoft Graph /.default scope instead of delegated User.Read, resolving
    invalid_scope failures. (#923, contributed by @N4k0r)
  • Fixed MSTICPy's outbound HTTP user-agent header. mp_ua_header() now
    emits the standards-compliant User-Agent header, allowing upstream services
    to identify MSTICPy requests correctly instead of seeing the default httpx
    identity. (#936, contributed by @jonaslejon)
  • Updated IPython integration for compatibility with newer releases and safer
    operation when no interactive shell is active. (#922, #935)
  • Resolved stricter Ruff and mypy diagnostics in notebook initialization and
    utility code. (#922)

Compatibility and dependencies

  • Updated supported environments to Python-specific NumPy 2.x release lines:
    • Python 3.10: NumPy 2.2.x
    • Python 3.11: NumPy 2.4.x
    • Python 3.12 and later: NumPy 2.5.1+
  • Updated NetworkX to 3.6.1 on Python 3.11 and later. Python 3.10 uses
    NetworkX 3.4.2, the latest compatible release. (#934)
  • Raised minimum versions for several runtime dependencies, including
    IPython, ipywidgets, Panel, Folium, Beautiful Soup, dnspython, aiohttp,
    Pillow, and jaraco.context. (#922, #929, #933, #940)
  • Updated development and test tooling, including coverage and pytest-cov.
    (#930, #941)

Documentation and release maintenance

  • Added ScanMalware provider configuration and API documentation. (#938)
  • Updated the Azure Pipelines publishing workflow and clarified installation
    guidance while PyPI publishing was unavailable.

Upgrade notes

  • NumPy 1.x is no longer supported by the declared runtime requirements.
    Review environment constraints and dependencies for NumPy 2 compatibility
    before upgrading.
  • Code that directly indexes the dictionary returned by mp_ua_header() must
    replace ["UserAgent"] with ["User-Agent"]. Code that passes the complete
    dictionary as HTTP headers does not need to change. Code needing the raw
    identifier can use MSTICPY_USER_AGENT.
  • Review application constraints if they pin older releases of IPython,
    ipywidgets, Panel, Folium, Beautiful Soup, or dnspython.

Contributors

Thank you to @jonaslejon, @N4k0r, and @danfiedler-msft for their contributions
to this release.

Full changelog:
v3.0.2...v3.1.0

Don't miss a new msticpy release

NewReleases is sending notifications on new releases.