← All hunts high TLP:CLEAR

Thermo Fisher Torrent Suite Path Traversal Exposure

An authenticated intruder is exploiting a path traversal vulnerability (CVE-2026-107777) in Thermo Fisher Torrent Suite Software to exfiltrate sensitive configuration and system files from healthcare servers.

Based on research by CISA 2026-10-16 9 steps · 4 queries T1090.003 T1133 T1190 T1566

Brief

Vulnerability Context

CISA published advisory ICSMA-26-288-01 detailing a path traversal vulnerability in Thermo Fisher Torrent Suite Software. This software manages sensitive genomic and medical data, making it a high-value target for intruders. The vulnerability, tracked as CVE-2026-107777, allows an authenticated user to access files outside the intended web directory. This hunt provides a structured method to identify vulnerable servers and determine if exploitation occurred.

How the Hunt Flows

The hunt starts by narrowing the scope to relevant assets. The first query uses software inventory data to list every host running Torrent Suite version 5.18 or lower. This prevents the hunt from processing data for patched or irrelevant systems. Next, the hunt baselines authentication activity. Because this vulnerability requires a valid account, the hunt identifies rare successful sign-ins to the vulnerable servers. An analyst looks for accounts logging in from unusual geographies or during non-business hours, as these often precede exploitation. The third phase examines HTTP activity for behavioral indicators. The query searches for dot-dot-slash sequences in URL paths. The hunt specifically flags requests that return a 200 OK status, which suggests the server processed the traversal attempt successfully. The final phase confirms the breach by monitoring file system access. It identifies the web service account—such as apache or nginx—reading sensitive files from a predefined list. When a web process reads /etc/passwd or a .env file, it confirms the adversary successfully bypassed the web root.

Beyond Simple Detection

This is structured as a hunt because simple alerts on traversal strings often produce excessive false positives from vulnerability scanners or administrative scripts. By correlating the software version with rare authentication and the actual file-read event on the host, the hunt provides the context needed to confirm a compromise. It transforms a high-volume signal into a high-fidelity investigation.

Blind Spots and Limitations

This hunt relies on comprehensive HTTP logging. If the environment does not capture full URL strings, unsuccessful traversal probes remain invisible. Additionally, the hunt does not address the initial access vector. If an attacker acquired credentials through phishing, that activity occurs on surfaces like email or proxy logs which this hunt does not include.

How to Run the Hunt

This hunt exists as an open hunt.md playbook. You can import this file into Huntbase or any runtime that supports the hunt.md format. The playbook automates the pivots between inventory, authentication, and file behavior, allowing an analyst to reach a verdict quickly.

Steps

  1. Inventory vulnerable Torrent Suite installations

    Query · scoping

    Identify hosts running Thermo Fisher Torrent Suite Software version 5.18 or lower to narrow the hunt scope.

    reads hb_software_inventorysql
    SELECT device_hostname, package_name, package_version, install_path FROM hb_software_inventory WHERE LOWER(package_name) LIKE '%torrent suite%' AND package_version < '5.2'

    What a hit looks like. A list of hosts running versions prior to 5.2. Silence means no vulnerable software is installed or the inventory is out of date.

  2. Rare authentication on Torrent servers

    Query · baseline

    Identify anomalous authenticated access, as the vulnerability requires a valid account for exploitation.

    reads hb_auth_signinsql
    SELECT actor_user_name, device_hostname, src_location_country, src_endpoint_ip, COUNT(*) AS login_count, MIN(time) AS first_login, MAX(time) AS last_login FROM hb_auth_signin WHERE (('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0)) AND status_id = 1 AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY actor_user_name, device_hostname, src_location_country, src_endpoint_ip HAVING login_count < 5 ORDER BY login_count ASC

    What a hit looks like. Accounts with very few successful logins to the targeted servers. In healthcare systems, even a single login from an unusual geography is more significant than the raw count.

  3. HTTP path traversal attempts

    Query · detection candidate

    Find HTTP requests containing dot-dot-slash sequences that attempt to break out of the web root.

    reads hb_http_activitysql
    SELECT device_hostname, src_endpoint_ip, url_full, status_code, user_agent, time FROM hb_http_activity WHERE (('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0)) AND (instr(LOWER(url_full), '../') > 0 OR instr(LOWER(url_full), '..\') > 0) AND time >= datetime('now', '-{{lookback_days}} days')

    What a hit looks like. HTTP requests targeting the Torrent Suite servers that include traversal characters. Requests returning a 200 OK status are highly suspicious as they indicate successful processing.

  4. Sensitive file reads by web service

    Query · enrichment

    Confirm successful traversal by identifying the web service account reading files from the sensitive files list.

    reads hb_file_activitysql
    SELECT device_hostname, actor_user_name, process_name, file_path, time FROM hb_file_activity WHERE (('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0)) AND (instr(LOWER(actor_user_name), 'www') > 0 OR instr(LOWER(actor_user_name), 'apache') > 0 OR instr(LOWER(actor_user_name), 'nginx') > 0 OR instr(LOWER(process_name), 'torrent') > 0) AND instr(',' || '{{sensitive_files}}' || ',', ',' || LOWER(file_path) || ',') > 0 AND activity_id = 2 AND time >= datetime('now', '-{{lookback_days}} days')

    What a hit looks like. The web service account or Torrent process reading files that should not be accessible via the application. This confirms successful arbitrary file disclosure.

  5. Analyze exposure and activity

    Agent triage

    Assess whether vulnerable hosts show evidence of path traversal exploitation.

  6. Route on verdict

    Decision

    Direct the hunt to remediation review if active exploitation is identified.

  7. Remediation and access review

    Analyst task

    Instructions for the analyst to coordinate patching and audit accounts.

  8. Close out

    Analyst task

    Finalize the hunt when no active exploitation is observed.

Coverage

Scenario coverage

StageCoveredHow, or why not
Exploitation of CVE-2026-107777
T1190
Yes inventory-vulnerable-torrent-suite, http-path-traversal-activity
Arbitrary File Read
T1190
Yes web-service-file-reads
Access via Remote Services
T1133
Yes rare-auth-on-torrent-servers
Phishing for Credentials
T1566
Not visible No email or messaging telemetry is provided in the available surfaces.

Blind spots

  • Needs hb_http_activity (full access logs). Unsuccessful traversal probes or probes targeting cached data would not be seen without complete HTTP telemetry. It would answer whether path traversal attempts occurred without triggering file system events.
  • Needs email_activity or proxy_logs. The hunt begins at the authentication stage; the precursor phishing activity is invisible to the provided surfaces. It would answer how the initial credentials for the authenticated traversal were acquired.

Parameters & data

Parameters

ParameterTypeDefaultWhat it is
lookback_daysnumber14Days of history to examine.
scope_hostslist[host]—List of hostnames running Torrent Suite Software; leave empty to search the whole estate.
sensitive_fileslist[path]/etc/passwd, /etc/shadow, /etc/hosts, c:\windows\win.ini, c:\windows\system32\drivers\etc\hosts, web.config, .envSensitive files an attacker might target; provided defaults are lowercase for exact matching.

Telemetry

SourceCategoryTelemetry
Endpoint telemetry (hb_ surfaces)endpointendpoint
Identity / sign-in telemetryidentityidentity
Web server / proxy logssiemnetwork

Source

Download hunt.md Definition (JSON) An open hunt.md file; it runs anywhere that reads the format.
---
analysis: This hunt correlates software versions (inventory) with authenticated access
  anomalies (prevalence) and multi-surface behavior (HTTP traversal and file reads)
  to distinguish exploitation from benign administrative activity.
blind_spots:
- id: missing-web-logs
  question: whether path traversal attempts occurred without triggering file system
    events
  requires: hb_http_activity (full access logs)
  risk: Unsuccessful traversal probes or probes targeting cached data would not be
    seen without complete HTTP telemetry.
  stage: path-traversal-exploitation
- id: phishing-telemetry-gap
  question: how the initial credentials for the authenticated traversal were acquired
  requires: email_activity or proxy_logs
  risk: The hunt begins at the authentication stage; the precursor phishing activity
    is invisible to the provided surfaces.
  stage: initial-access-phishing
coverage:
- stage: path-traversal-exploitation
  status: covered
  steps:
  - inventory-vulnerable-torrent-suite
  - http-path-traversal-activity
- stage: unauthorized-file-disclosure
  status: covered
  steps:
  - web-service-file-reads
- stage: external-remote-service-access
  status: covered
  steps:
  - rare-auth-on-torrent-servers
- blind_spot: phishing-telemetry-gap
  reason: No email or messaging telemetry is provided in the available surfaces.
  stage: initial-access-phishing
  status: not_visible
guardrails:
  claims: no_unsupported
  evidence: citation_required
  missing_data: not_benign
  telemetry: untrusted
hunt:
  applicability: campaign-specific
  handoff: keep-as-periodic-hunt
  justification: Torrent Servers manage sensitive genomic and healthcare data. File
    disclosure via path traversal leads to significant regulatory violations and breach
    of privacy. Verifying exploitation status is critical for patient data safety.
  methodology: model-assisted
  trigger: intel-report
hypothesis: An authenticated intruder is exploiting a path traversal vulnerability
  (CVE-2026-107777) in Thermo Fisher Torrent Suite Software to exfiltrate sensitive
  configuration and system files from healthcare servers.
labels:
- hunt
- attack.t1190
- attack.t1133
- attack.t1090.003
- attack.t1566
- collection
- initial access
name: Thermo Fisher Torrent Suite Path Traversal Exposure
parameters:
  lookback_days:
    default: '14'
    description: Days of history to examine.
    type: number
  scope_hosts:
    default: []
    description: List of hostnames running Torrent Suite Software; leave empty to
      search the whole estate.
    type: list[host]
  sensitive_files:
    default:
    - /etc/passwd
    - /etc/shadow
    - /etc/hosts
    - c:\windows\win.ini
    - c:\windows\system32\drivers\etc\hosts
    - web.config
    - .env
    description: Sensitive files an attacker might target; provided defaults are lowercase
      for exact matching.
    type: list[path]
provenance:
  authors:
  - name: Huntbase hunt generation
    org: huntbase.io
  generated:
    by: huntbase-hunt-generation
    from: https://www.cisa.gov/news-events/ics-medical-advisories/icsma-26-288-01
    gates:
    - dry-run
    - lint
    model: hb_google/gemini-3-flash-preview
rationale: Focus on servers running Torrent Suite Software. Prioritize internet-exposed
  servers or those accessible via VPN, as authenticated traversal is the primary risk.
references:
- name: CISA Advisory ICSMA-26-288-01
  url: https://www.cisa.gov/news-events/ics-medical-advisories/icsma-26-288-01
related:
- hunt: credential-harvesting-phishing-analysis
  reason: Phishing detection requires email and network proxy surfaces not focused
    on in this vulnerability-centric hunt.
  relation: out-of-scope-alternative
scenario:
  stages:
  - name: Phishing for Credentials
    observables:
    - Links in unsolicited email messages
    - Attachments in unsolicited email messages
    - Social engineering lures
    slug: initial-access-phishing
    tactic: initial-access
    techniques:
    - T1566
  - name: Access via Remote Services
    observables:
    - VPN connection attempts
    - Successful authenticated logins to remote access gateways
    slug: external-remote-service-access
    tactic: initial-access
    techniques:
    - T1133
  - name: Exploitation of CVE-2026-107777
    observables:
    - Torrent Suite Software version <= 5.18
    - HTTP requests with dot-dot-slash (../) sequences in the URL path or query
    - Targeting Thermo Fisher Torrent Suite Server
    slug: path-traversal-exploitation
    tactic: initial-access
    techniques:
    - T1190
  - name: Arbitrary File Read
    observables:
    - Web service account accessing system files (e.g., /etc/passwd)
    - Web service account accessing configuration files outside the web root
    - Reads of arbitrary files on the Torrent Server
    slug: unauthorized-file-disclosure
    tactic: collection
    techniques:
    - T1190
  summary: Authenticated attackers exploit a path traversal vulnerability (CVE-2026-107777)
    in Thermo Fisher Torrent Suite Software versions 5.18 and earlier to read arbitrary
    files accessible to the web service account. Access is typically gained through
    stolen credentials via phishing or by leveraging external remote services like
    VPNs.
severity: high
targets:
  analyst:
    name: Tier-2 analyst
    role: analyst
  endpoint:
    category: endpoint
    name: Endpoint telemetry (hb_ surfaces)
    telemetry:
    - endpoint
  hunter:
    agent: true
    name: Hunt agent
  identity:
    category: identity
    name: Identity / sign-in telemetry
    telemetry:
    - identity
  web:
    category: siem
    name: Web server / proxy logs
    telemetry:
    - network
tlp: clear
type: investigation
---


# Thermo Fisher Torrent Suite Path Traversal Exposure

This hunt identifies servers running vulnerable versions (<= 5.18) of Thermo Fisher Torrent Suite Software and examines them for exploitation. It first scopes the estate using software inventory data, then baselines user authentication to identify rare or anomalous access. Finally, it searches for behavioral indicators: HTTP requests containing traversal sequences and the web service account reading files in sensitive system paths. This multi-surface approach ensures that even if web logs are missing or traversal characters are obfuscated, the downstream file access behavior is captured.

## inventory-vulnerable-torrent-suite
<!-- Inventory vulnerable Torrent Suite installations -->
Identify hosts running Thermo Fisher Torrent Suite Software version 5.18 or lower to narrow the hunt scope.

```sqlite target=endpoint role=scoping
~~~yaml
expected: A list of hosts running versions prior to 5.2. Silence means no vulnerable
  software is installed or the inventory is out of date.
reads:
- device_hostname
- package_name
- package_version
- install_path
silence: not_evidence_of_absence
source: hb_software_inventory
verified: dry-run
verified_at: '2026-10-16'
~~~
SELECT device_hostname, package_name, package_version, install_path FROM hb_software_inventory WHERE LOWER(package_name) LIKE '%torrent suite%' AND package_version < '5.2'
```

## rare-auth-on-torrent-servers
<!-- Rare authentication on Torrent servers -->
Identify anomalous authenticated access, as the vulnerability requires a valid account for exploitation.

```sqlite target=identity role=baseline params=(scope_hosts=scope_hosts, lookback_days=lookback_days)
~~~yaml
baseline:
  compare: first_seen
  window: '{{lookback_days}}d'
expected: Accounts with very few successful logins to the targeted servers. In healthcare
  systems, even a single login from an unusual geography is more significant than
  the raw count.
prevalence:
  by: device_hostname
  key:
  - actor_user_name
  rare_below: 5
reads:
- actor_user_name
- device_hostname
- src_location_country
- src_endpoint_ip
- status_id
- time
silence: not_evidence_of_absence
source: hb_auth_signin
verified: dry-run
verified_at: '2026-10-16'
~~~
SELECT actor_user_name, device_hostname, src_location_country, src_endpoint_ip, COUNT(*) AS login_count, MIN(time) AS first_login, MAX(time) AS last_login FROM hb_auth_signin WHERE (('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0)) AND status_id = 1 AND time >= datetime('now', '-{{lookback_days}} days') GROUP BY actor_user_name, device_hostname, src_location_country, src_endpoint_ip HAVING login_count < 5 ORDER BY login_count ASC
```

## http-path-traversal-activity
<!-- HTTP path traversal attempts -->
Find HTTP requests containing dot-dot-slash sequences that attempt to break out of the web root.

```sqlite target=web role=detection-candidate params=(scope_hosts=scope_hosts, lookback_days=lookback_days)
~~~yaml
expected: HTTP requests targeting the Torrent Suite servers that include traversal
  characters. Requests returning a 200 OK status are highly suspicious as they indicate
  successful processing.
reads:
- device_hostname
- src_endpoint_ip
- url_full
- status_code
- user_agent
- time
silence: not_evidence_of_absence
source: hb_http_activity
verified: dry-run
verified_at: '2026-10-16'
~~~
SELECT device_hostname, src_endpoint_ip, url_full, status_code, user_agent, time FROM hb_http_activity WHERE (('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0)) AND (instr(LOWER(url_full), '../') > 0 OR instr(LOWER(url_full), '..\') > 0) AND time >= datetime('now', '-{{lookback_days}} days')
```

## web-service-file-reads
<!-- Sensitive file reads by web service -->
Confirm successful traversal by identifying the web service account reading files from the sensitive files list.

```sqlite target=endpoint role=enrichment params=(scope_hosts=scope_hosts, lookback_days=lookback_days, sensitive_files=sensitive_files)
~~~yaml
expected: The web service account or Torrent process reading files that should not
  be accessible via the application. This confirms successful arbitrary file disclosure.
reads:
- device_hostname
- actor_user_name
- process_name
- file_path
- activity_id
- time
silence: not_evidence_of_absence
source: hb_file_activity
verified: dry-run
verified_at: '2026-10-16'
~~~
SELECT device_hostname, actor_user_name, process_name, file_path, time FROM hb_file_activity WHERE (('{{scope_hosts}}' = '' OR instr(',' || '{{scope_hosts}}' || ',', ',' || device_hostname || ',') > 0)) AND (instr(LOWER(actor_user_name), 'www') > 0 OR instr(LOWER(actor_user_name), 'apache') > 0 OR instr(LOWER(actor_user_name), 'nginx') > 0 OR instr(LOWER(process_name), 'torrent') > 0) AND instr(',' || '{{sensitive_files}}' || ',', ',' || LOWER(file_path) || ',') > 0 AND activity_id = 2 AND time >= datetime('now', '-{{lookback_days}} days')
```

## triage-exposure
<!-- Analyze exposure and activity -->
```agent target=hunter
cite: required
context:
- inventory-vulnerable-torrent-suite
- rare-auth-on-torrent-servers
- http-path-traversal-activity
- web-service-file-reads
max_iterations: 5
objective: Review the authentication trends, HTTP requests, and file access events
  to determine if any Thermo Fisher Torrent Suite Servers have been exploited via
  CVE-2026-107777.
success_criteria: A verdict per host citing specific rows that indicate software version,
  rare login activity, and specific file or HTTP indicators.
tools:
- endpoint
- identity
- web
```

## route-on-verdict
<!-- Route on verdict -->
if~: "the triage-exposure verdict indicates successful traversal attempts (HTTP 200) or sensitive file reads by a web service account" (confidence: high, judge=hunter)
then: → remediation-review
indeterminate: → remediation-review
unavailable: → remediation-review (blind_spot: missing-web-logs)
else: → close-out

## remediation-review
<!-- Remediation and access review -->
```manual target=analyst
1. Prioritize updating all Thermo Fisher Torrent Suite Software to version 5.22 or later. 2. Audit the logins identified in the rare authentication step; rotate credentials for any account that shows unusual activity or geographic anomalies. 3. Audit file system permissions to ensure the web service account cannot read sensitive system directories like /etc.
```
→ end

## close-out
<!-- Close out -->
```manual target=analyst
Document the vulnerable hosts found in the scoping step and ensure they are scheduled for patching. Confirm that no active traversal strings or sensitive file reads were detected during the lookback period.
```
→ end

Run it

Take this hunt into your environment.

Open it in Huntbase to run every step against your own connections, with Scout weighing the evidence and your analysts in command. Or take the open hunt.md file anywhere that reads the format.

Machine-drafted by huntbase-hunt-generation using hb_google/gemini-3-flash-preview, gated by dry-run, lint, then reviewed by a person.