blob: 82341fc4085749f9ed8ea8f2cbc463349cc74144 [file] [log] [blame]
.. Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
.. http://www.apache.org/licenses/LICENSE-2.0
.. Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
Security Model
--------------
In the Airflow security model, the system administrators are fully trusted.
They are the only ones who can upload new DAGs, which gives them the ability
to execute any code on the server.
Authenticated web interface and API users with Admin/Op permissions are trusted,
but to a lesser extent: they can configure the DAGs which gives them some control,
but not arbitrary code execution.
Authenticated Web interface and API users with 'regular' permissions are trusted
to the point where they can impact resource consumption and pause/unpause configured DAGs,
but not otherwise influence their functionality.
Reporting Vulnerabilities
-------------------------
**⚠️ Please do not file GitHub issues for security vulnerabilities as they are public! ⚠️**
The Apache Software Foundation takes security issues very seriously. Apache
Airflow specifically offers security features and is responsive to issues
around its features. If you have any concern around Airflow Security or believe
you have uncovered a vulnerability, we suggest that you get in touch via the
e-mail address security@airflow.apache.org. In the message, try to provide a
description of the issue and ideally a way of reproducing it. The security team
will get back to you after assessing the description.
Note that this security address should be used only for undisclosed
vulnerabilities. Dealing with fixed issues or general questions on how to use
the security features should be handled regularly via the user and the dev
lists. Please report any security problems to the project security address
before disclosing it publicly.
The `ASF Security team's page <https://www.apache.org/security/>`_ describes
how vulnerability reports are handled, and includes PGP keys if you wish to use
that.
Handling security issues in Airflow
-----------------------------------
The security issues in Airflow are handled by the Airflow Security Team. The team consists
of selected PMC members that are interested in looking at, discussing about and fixing the
security issues, but it can also include committers and non-committer contributors that are
not PMC members yet and have been approved by the PMC members in a vote. You can request to
be added to the team by sending a message to private@airflow.apache.org. However, the team
should be small and focused on solving security issues, so the requests will be evaluated
on-case-by-case and the team size will be kept relatively small, limited to only actively
security-focused contributors.
There are certain expectations from the members of the security team:
* They are supposed to be active in assessing, discussing, fixing and releasing the
security issues in Airflow. While it is perfectly understood that as volunteers, we might have
periods of lower activity, prolonged lack of activity and participation will result in removal
from the team, pending PMC decision (the decision on removal can be taken by LAZY CONSENSUS among
all the PMC members on private@airflow.apache.org mailing list).
* They are not supposed to reveal the information about pending and unfixed security issues to anyone
(including their employers) unless specifically authorised by the security team members, specifically
if diagnosing and solving the issue might involve the need of external experts - for example security
experts that are available through Airflow stakeholders. The intent about involving 3rd parties has
to be discussed and agreed up at security@airflow.apache.org.
* They have to have an `ICLA <https://www.apache.org/licenses/contributor-agreements.html>`_ signed with
Apache Software Foundation.
* The security team members might inform 3rd parties about fixes, for example in order to assess if the fix
is solving the problem or in order to assess its applicability to be applied by 3rd parties, as soon
as a PR solving the issue is opened in the public airflow repository.
* In case of critical security issues, the members of the security team might iterate on a fix in a
private repository and only open the PR in the public repository once the fix is ready to be released,
with the intent of minimizing the time between the fix being available and the fix being released. In this
case the PR might be sent to review and comment to the PMC members on private list, in order to request
an expedited voting on the release. The voting for such release might be done on the
``private@airflow.apache.org`` mailing list and should be made public at the ``dev@apache.airflow.org``
mailing list as soon as the release is ready to be announced.
* The security team members working on the fix might be mentioned as remediation developers in the CVE
including their job affiliation if they want to.
* Community members acting as release managers are by default members of the security team and unless they
want to, they do not have to be involved in discussing and solving the issues. They are responsible for
releasing the CVE information (announcement and publishing to security indexes) as part of the
release process. This is facilitated by the security tool provided by the Apache Software Foundation.
Releasing Airflow with security patches
---------------------------------------
Apache Airflow uses strict `SemVer <https://semver.org>`_ versioning policy, which means that we strive for
any release of a given ``MAJOR`` Version (version "2" currently) to be backwards compatible. When we
release ``MINOR`` version, the development continues in the ``main`` branch where we prepare the next
``MINOR`` version, but we release ``PATCHLEVEL`` releases with selected bugfixes (including security
bugfixes) cherry-picked to the latest released ``MINOR`` line of Apache Airflow. At the moment, when we
release a new ``MINOR`` version, we stop releasing ``PATCHLEVEL`` releases for the previous ``MINOR`` version.
For example, when we released ``2.6.0`` version on April 30, 2023, until we release ``2.7.0`` version,
all the security patches will be cherry-picked and released in ``2.6.*`` versions only. There will be no
``2.5.*`` versions released after ``2.6.0`` has been released.
This means that in order to apply security fixes with Apache Airflow software released by us, you
MUST upgrade to the latest ``MINOR`` version of Airflow.