mal-2026-17793

osv_rubygems
Description

--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (123418539e0264e9d58c8b51976723aff3eceec10520c231d7bc847edd51d691) The gem's native-extension script ext/perp_funding_rates/extconf.rb contains no real build logic: it declares create_makefile('bitcoin_rpc_lite_native') but ships no C/C++/Rust sources, and the gemspec/library name (perp-funding-rates / PerpFundingRates) does not match the README (bitcoin-rpc-lite) — the extension exists solely to execute code at install time. During `gem install`, extconf.rb base64-decodes a Ruby payload and eval()s it inside a double-forked, detached, delayed child process. The decoded payload opens a TCP socket to the hardcoded bare-IP C2 at 45.138.12.177:8089 and bridges it to /bin/sh, giving the operator an interactive shell on the installer's machine. Execution is gated by sandbox/CI/user/path/uptime heuristics and only triggers when developer-signal files such as ~/.ssh, ~/.gem/credentials, ~/.gitconfig, ~/.npmrc, or ~/.bundle are present on the host, targeting developer workstations and build systems. The base64+eval obfuscation, 20-40 minute sleep before dial-out, double-fork detachment, and cloned-identity cover story are consistent with a targeted developer-compromise dropper, not a legitimate native build. ## Source: ossf-package-analysis (0ce92e6f21307b92f509ec9ac926330b908f989a4fef9078a51f3557790c8167) The OpenSSF Package Analysis project identified 'perp-funding-rates' @ 0.9.1 (rubygems) as malicious. It is considered malicious because: - The package executes one or more commands associated with malicious behavior.

Timeline
Published
unknown
Last Modified
unknown
CVSS Details

CVSS details not available.

Affected Products

No product information available.

Weaknesses (CWE)
References
Linked Vulnerabilities

No linked vulnerabilities found.

{
  "affected": [
    {
      "database_specific": {
        "cwes": [
          {
            "cweId": "CWE-506",
            "description": "The product contains code that appears to be malicious in nature.",
            "name": "Embedded Malicious Code"
          }
        ],
        "indicators": {
          "evidence_files": [
            {
              "path": "ext/perp_funding_rates/extconf.rb",
              "sha256": "10218e975f54a4f11fe3954e1b584a5f05054003bf5773c3c2b8cceaa74ba763",
              "tlsh": "9751775acf8359e55aa1c0c045798012faa3ab0a50646875f3ee0868ff59b26c0f12fe"
            }
          ]
        },
        "source": "https://github.com/ossf/malicious-packages/blob/main/osv/malicious/rubygems/perp-funding-rates/MAL-2026-17793.json"
      },
      "package": {
        "ecosystem": "RubyGems",
        "name": "perp-funding-rates",
        "purl": "pkg:gem/perp-funding-rates"
      },
      "versions": [
        "0.9.1"
      ]
    }
  ],
  "credits": [
    {
      "contact": [
        "inspector-research@amazon.com"
      ],
      "name": "Amazon Inspector",
      "type": "FINDER"
    },
    {
      "contact": [
        "https://github.com/ossf/package-analysis",
        "https://openssf.slack.com/channels/package_analysis"
      ],
      "name": "OpenSSF: Package Analysis",
      "type": "FINDER"
    }
  ],
  "database_specific": {
    "malicious-packages-origins": [
      {
        "id": "IN-MAL-2026-021364",
        "import_time": "2026-10-11T14:17:59.524867754Z",
        "modified_time": "2026-10-11T13:48:06Z",
        "sha256": "123418539e0264e9d58c8b51976723aff3eceec10520c231d7bc847edd51d691",
        "source": "amazon-inspector",
        "versions": [
          "0.9.1"
        ]
      },
      {
        "import_time": "2026-10-13T23:14:40.397545496Z",
        "modified_time": "2026-10-11T07:05:31Z",
        "sha256": "0ce92e6f21307b92f509ec9ac926330b908f989a4fef9078a51f3557790c8167",
        "source": "ossf-package-analysis",
        "versions": [
          "0.9.1"
        ]
      }
    ]
  },
  "details": "\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (123418539e0264e9d58c8b51976723aff3eceec10520c231d7bc847edd51d691)\nThe gem's native-extension script ext/perp_funding_rates/extconf.rb contains no real build logic: it declares create_makefile('bitcoin_rpc_lite_native') but ships no C/C++/Rust sources, and the gemspec/library name (perp-funding-rates / PerpFundingRates) does not match the README (bitcoin-rpc-lite) — the extension exists solely to execute code at install time. During `gem install`, extconf.rb base64-decodes a Ruby payload and eval()s it inside a double-forked, detached, delayed child process. The decoded payload opens a TCP socket to the hardcoded bare-IP C2 at 45.138.12.177:8089 and bridges it to /bin/sh, giving the operator an interactive shell on the installer's machine. Execution is gated by sandbox/CI/user/path/uptime heuristics and only triggers when developer-signal files such as ~/.ssh, ~/.gem/credentials, ~/.gitconfig, ~/.npmrc, or ~/.bundle are present on the host, targeting developer workstations and build systems. The base64+eval obfuscation, 20-40 minute sleep before dial-out, double-fork detachment, and cloned-identity cover story are consistent with a targeted developer-compromise dropper, not a legitimate native build.\n\n## Source: ossf-package-analysis (0ce92e6f21307b92f509ec9ac926330b908f989a4fef9078a51f3557790c8167)\nThe OpenSSF Package Analysis project identified 'perp-funding-rates' @ 0.9.1 (rubygems) as malicious.\n\nIt is considered malicious because:\n\n- The package executes one or more commands associated with malicious behavior.\n",
  "id": "MAL-2026-17793",
  "modified": "2026-10-13T23:30:05.053752931Z",
  "published": "2026-10-11T07:05:31Z",
  "references": [
    {
      "type": "PACKAGE",
      "url": "https://rubygems.org/gems/perp-funding-rates/versions/0.9.1"
    }
  ],
  "schema_version": "1.9.0",
  "summary": "Malicious code in perp-funding-rates (RubyGems)"
}
View JSON API Download JSON