Security Issues

This document explains how Symfony security issues are handled by the Symfony core team (Symfony being the code hosted on the main symfony/symfony Git repository).

このドキュメントでは、Symfony のセキュリティ問題が Symfony コア チーム (Symfony はメインの symfony/symfonyGit リポジトリでホストされているコード) によってどのように処理されるかについて説明します。

Reporting a Security Issue

If you think that you have found a security issue in Symfony, don't use the bug tracker and don't publish it publicly. Instead, all security issues must be sent to security [at] symfony.com. Emails sent to this address are forwarded to the Symfony core team private mailing-list.

Symfony でセキュリティ上の問題を発見したと思われる場合は、バグトラッカーを使用したり、公開したりしないでください。代わりに、すべてのセキュリティ問題は security [at] symfony.com に送信する必要があります。このアドレスに送信された電子メールは、Symfony コア チームのプライベート メーリング リストに転送されます。

The following issues are not considered security issues and should be handled as regular bug fixes (if you have any doubts, don't hesitate to send us an email for confirmation):

次の問題はセキュリティ上の問題とは見なされず、通常のバグ修正として処理する必要があります (不明な点がある場合は、確認のために電子メールを送信することを躊躇しないでください)。
  • Any security issues found in debug tools that must never be enabled in production (including the web profiler or anything enabled when APP_DEBUG is set to true or APP_ENV set to anything but prod);
    本番環境で有効にしてはならないデバッグ ツールで見つかったセキュリティの問題 (Web プロファイラーや、APP_DEBUG が true に設定されているか、APP_ENV が prod 以外に設定されている場合に有効になるものを含む)。
  • Any fix that can be classified as security hardening like route enumeration, login throttling bypasses, denial of service attacks, timing attacks, or lack of SensitiveParameter attributes.
    ルート列挙、ログイン スロットリング バイパス、サービス拒否攻撃、タイミング攻撃、または SensitiveParameter 属性の欠如などのセキュリティ強化として分類できるすべての修正。

In any case, the core team has the final decision on which issues are considered security vulnerabilities.

いずれにせよ、コア チームは、どの問題をセキュリティの脆弱性と見なすかについて最終決定を下します。

Security Bug Bounties

Symfony is an Open-Source project where most of the work is done by volunteers. We appreciate that developers are trying to find security issues in Symfony and report them responsibly, but we are currently unable to pay bug bounties.

Symfony はオープンソース プロジェクトであり、ほとんどの作業はボランティアによって行われています。開発者が Symfony のセキュリティ問題を見つけて責任を持って報告しようとしていることに感謝していますが、現在のところバグ報奨金を支払うことができません。

Resolving Process

For each report, we first try to confirm the vulnerability. When it is confirmed, the core team works on a solution following these steps:

報告ごとに、まず脆弱性の確認を試みます。確認されると、コア チームは次の手順に従ってソリューションに取り組みます。
  1. Send an acknowledgment to the reporter;
    レポーターに確認を送信します。
  2. Work on a patch;
    パッチに取り組みます。
  3. Get a CVE identifier from mitre.org;
    mitre.org から CVE 識別子を取得します。
  4. Write a security announcement for the official Symfony blog about the vulnerability. This post should contain the following information:

    公式の Symfony ブログに、脆弱性に関するセキュリティ アナウンスを書きます。この投稿には、次の情報が含まれている必要があります。
    • a title that always include the "Security release" string;
      常に「セキュリティ リリース」文字列を含むタイトル。
    • a description of the vulnerability;
      脆弱性の説明;
    • the affected versions;
      影響を受けるバージョン。
    • the possible exploits;
      エクスプロイトの可能性;
    • how to patch/upgrade/workaround affected applications;
      影響を受けるアプリケーションにパッチを適用/アップグレード/回避する方法。
    • the CVE identifier;
      CVE 識別子;
    • credits.
      クレジット。
  5. Send the patch and the announcement to the reporter for review;
    パッチとアナウンスをレビューのためにレポーターに送信します。
  6. Apply the patch to all maintained versions of Symfony;
    Symfony のすべての保守バージョンにパッチを適用します。
  7. Package new versions for all affected versions;
    影響を受けるすべてのバージョンの新しいバージョンをパッケージ化します。
  8. Publish the post on the official Symfony blog (it must also be added to the "`Security Advisories`_" category);
    Symfony の公式ブログに投稿を公開します (「セキュリティ アドバイザリ」カテゴリにも追加する必要があります)。
  9. Update the public security advisories database maintained by the FriendsOfPHP organization and which is used by the check:security command.
    FriendsOfPHP 組織によって維持され、check:security コマンドによって使用される公安勧告データベースを更新します。

Note

ノート

Releases that include security issues should not be done on Saturday or Sunday, except if the vulnerability has been publicly posted.

セキュリティの問題を含むリリースは、脆弱性が公開されている場合を除き、土曜日または日曜日に行うべきではありません。

Note

ノート

While we are working on a patch, please do not reveal the issue publicly.

パッチに取り組んでいる間は、問題を公開しないでください。

Note

ノート

The resolution takes anywhere between a couple of days to a month depending on its complexity and the coordination with the downstream projects (see next paragraph).

解決には、その複雑さと下流プロジェクトとの調整に応じて、数日から 1 か月かかります (次の段落を参照)。

Collaborating with Downstream Open-Source Projects

As Symfony is used by many large Open-Source projects, we standardized the way the Symfony security team collaborates on security issues with downstream projects. The process works as follows:

Symfony は多くの大規模なオープンソース プロジェクトで使用されているため、Symfony セキュリティ チームがダウンストリーム プロジェクトとのセキュリティ問題について協力する方法を標準化しました。プロセスは次のように機能します。
  1. After the Symfony security team has acknowledged a security issue, it immediately sends an email to the downstream project security teams to inform them of the issue;
    Symfony のセキュリティ チームがセキュリティの問題を認識した後、すぐに電子メールを下流のプロジェクト セキュリティ チームに送信して問題を通知します。
  2. The Symfony security team creates a private Git repository to ease the collaboration on the issue and access to this repository is given to the Symfony security team, to the Symfony contributors that are impacted by the issue, and to one representative of each downstream projects;
    Symfony セキュリティ チームは、問題に関するコラボレーションを容易にするためにプライベート Git リポジトリを作成します。このリポジトリへのアクセスは、Symfony セキュリティ チーム、問題の影響を受ける Symfony 貢献者、および各ダウンストリーム プロジェクトの 1 人の代表者に与えられます。
  3. All people with access to the private repository work on a solution to solve the issue via pull requests, code reviews, and comments;
    プライベート リポジトリにアクセスできるすべての人が、プル リクエスト、コード レビュー、およびコメントを通じて問題を解決するためのソリューションに取り組みます。
  4. Once the fix is found, all involved projects collaborate to find the best date for a joint release (there is no guarantee that all releases will be at the same time but we will try hard to make them at about the same time). When the issue is not known to be exploited in the wild, a period of two weeks is considered a reasonable amount of time.
    修正が見つかると、関係するすべてのプロジェクトが協力して、共同リリースの最適な日付を見つけます (すべてのリリースが同時に行われるという保証はありませんが、ほぼ同時に行うように努めます)。問題が実際に悪用されていることが知られていない場合、2 週間の期間が妥当な期間と見なされます。

The list of downstream projects participating in this process is kept as small as possible in order to better manage the flow of confidential information prior to disclosure. As such, projects are included at the sole discretion of the Symfony security team.

このプロセスに参加する下流プロジェクトのリストは、開示前の機密情報の流れをより適切に管理するために、可能な限り小さく保たれます。そのため、プロジェクトは Symfony セキュリティ チームの独自の裁量で含まれています。

As of today, the following projects have validated this process and are part of the downstream projects included in this process:

本日現在、次のプロジェクトがこのプロセスを検証しており、このプロセスに含まれるダウンストリーム プロジェクトの一部です。
  • Drupal (releases typically happen on Wednesdays)
    Drupal (リリースは通常水曜日に行われます)
  • eZPublish
    eZパブリッシュ

Issue Severity

In order to determine the severity of a security issue we take into account the complexity of any potential attack, the impact of the vulnerability and also how many projects it is likely to affect. This score out of 15 is then converted into a level of: Low, Medium, High, Critical, or Exceptional.

セキュリティ問題の深刻度を判断するために、潜在的な攻撃の複雑さ、脆弱性の影響、および影響を受ける可能性のあるプロジェクトの数を考慮します。この 15 点満点のスコアは、低、中、高、クリティカル、または例外のレベルに変換されます。

Attack Complexity

Score of between 1 and 5 depending on how complex it is to exploit the vulnerability

脆弱性を悪用するのがどれほど複雑であるかに応じて、1 ~ 5 のスコア
  • 4 - 5 Basic: attacker must follow a set of simple steps
    4 - 5 基本: 攻撃者は一連の簡単な手順に従う必要があります
  • 2 - 3 Complex: attacker must follow non-intuitive steps with a high level of dependencies
    2 - 3 複雑: 攻撃者は、高レベルの依存関係を持つ非直感的な手順に従う必要があります
  • 1 - 2 High: A successful attack depends on conditions beyond the attacker's control. That is, a successful attack cannot be accomplished at will, but requires the attacker to invest in some measurable amount of effort in preparation or execution against the vulnerable component before a successful attack can be expected.
    1 - 2 高: 攻撃の成功は、攻撃者が制御できない状況に依存します。つまり、攻撃の成功を自由に達成することはできませんが、攻撃の成功を期待するには、攻撃者が脆弱なコンポーネントに対する準備または実行にかなりの労力を費やす必要があります。

Impact

Scores from the following areas are added together to produce a score. The score for Impact is capped at 6. Each area is scored between 0 and 4.

次の領域のスコアが合計されて、スコアが生成されます。インパクトのスコアは 6 が上限です。各領域は 0 から 4 の間でスコア付けされます。
  • Integrity: Does this vulnerability cause non-public data to be accessible? If so, does the attacker have control over the data disclosed? (0-4)
    完全性: この脆弱性により、非公開データにアクセスできるようになりますか?そうである場合、攻撃者は公開されたデータを制御できますか? (0-4)
  • Disclosure: Can this exploit allow system data (or data handled by the system) to be compromised? If so, does the attacker have control over modification? (0-4)
    開示: この悪用により、システム データ (またはシステムによって処理されるデータ) が危険にさらされる可能性がありますか?もしそうなら、攻撃者は過度の変更を制御できますか? (0-4)
  • Code Execution: Does the vulnerability allow arbitrary code to be executed on an end-users system, or the server that it runs on? (0-4)
    コードの実行: この脆弱性により、エンド ユーザーのシステムまたはそれが実行されているサーバーで任意のコードが実行される可能性がありますか? (0-4)
  • Availability: Is the availability of a service or application affected? Is it reduced availability or total loss of availability of a service / application? Availability includes networked services (e.g. databases) or resources such as consumption of network bandwidth, processor cycles, or disk space. (0-4)
    可用性: サービスまたはアプリケーションの可用性は影響を受けますか?サービス/アプリケーションの可用性が低下したり、可用性が完全に失われたりしますか?可用性には、ネットワーク サービス (データベースなど) またはリソース (ネットワーク帯域幅、プロセッサ サイクル、またはディスク領域の消費など) が含まれます。 (0-4)

Affected Projects

Scores from the following areas are added together to produce a score. The score for Affected Projects is capped at 4.

次の領域のスコアが合計されて、スコアが生成されます。影響を受けるプロジェクトのスコアは 4 が上限です。
  • Will it affect some or all using a component? (1-2)
    コンポーネントを使用している一部またはすべてに影響しますか? (1-2)
  • Is the usage of the component that would cause such a thing already considered bad practice? (0-1)
    そのようなことを引き起こす可能性のあるコンポーネントの使用は、すでに悪い習慣と見なされていますか? (0-1)
  • How common/popular is the component (e.g. Console vs HttpFoundation vs Lock)? (0-2)
    コンポーネントはどの程度一般的/人気がありますか (例: Console vs HttpFoundation vsLock)? (0-2)
  • Are a number of well-known open source projects using Symfony affected that requires coordinated releases? (0-1)
    Symfony を使用する多くの有名なオープン ソース プロジェクトが影響を受けており、調整されたリリースが必要ですか? (0-1)

Score Totals

  • Attack Complexity: 1 - 5
    攻撃の複雑さ: 1 - 5
  • Impact: 1 - 6
    インパクト: 1 - 6
  • Affected Projects: 1 - 4
    影響を受けるプロジェクト: 1 - 4

Severity levels

  • Low: 1 - 5
    低: 1 - 5
  • Medium: 6 - 10
    中: 6 - 10
  • High: 11 - 12
    高: 11 - 12
  • Critical: 13 - 14
    クリティカル: 13 - 14
  • Exceptional: 15
    例外的: 15

Security Advisories

Tip

ヒント

You can check your Symfony application for known security vulnerabilities using the check:security command.

check:security コマンドを使用して、既知のセキュリティ脆弱性について Symfony アプリケーションをチェックできます。

Check the Security Advisories blog category for a list of all security vulnerabilities that were fixed in Symfony releases, starting from Symfony 1.0.0.

Symfony 1.0.0 以降の Symfony リリースで修正されたすべてのセキュリティ脆弱性のリストについては、Security Advisories ブログ カテゴリを確認してください。