The Authentication component is new to Drupal 8 and has several documented bugs.

Once the known bugs and API is in a reasonable state it should be security audited prior to a release candidate as well has writing documentation on the security model.

This issue is blocked on #2371629: [meta] Finalize Session and User Authentication API.

Comments

chx’s picture

Here's how this works (part 1):

The current_user service is by default set to Drupal\Core\Session\AccountProxy.

In AccountProxy every method except setAccount goes through getAccount

getAaccount on the first call, if the account is not yet does $this->setAccount($this->authenticationManager->authenticate($this->request));

AuthenticationManager calls every service tagged by authentication_provider. Core has two: Cookie which calls the old session code and basic_auth.

However, the way Cookie calls into the old session code is extremely convoluted. There is a class SessionManager extends NativeSessionStorage which means Symfony gets involved at this point. To be continued.

chx’s picture

Status: Active » Postponed

talked to znerol and we will revisit this as the session code becomes more complete.

YesCT’s picture

YesCT’s picture

Issue tags: +Security

tagging. also we need to identify exactly the issue blocking this (maybe make that issue critical, and tag it "blocker").

catch’s picture

xjm’s picture

effulgentsia’s picture

Issue tags: +authentication
chx’s picture

LOL nope. Let me save you triage time: security is critical. Helpful chx is helpful.

chx’s picture

Apparently this is maintainer user only. Sigh. okay.

xjm’s picture

Issue tags: -Needs Drupal 8 critical triage +D8 critical triage deferred

(Updating certain "Needs D8 critical triage" issues to a less misleading tag name.)

znerol’s picture

Status: Postponed » Active

Step 1 through 3 of #2371629: [meta] Finalize Session and User Authentication API are complete, this is step 4.

xjm’s picture

@borisson found http://symfony.com/blog/symfony2-security-audit -- so the Symfony component itself was audited in 2011.

It could be worth looking at how Symfony handled their audits (for this issue or in general).

dawehner’s picture

To be clear, this issue seems to be about more than just the session component of symfony. We have implemented authentication for our own,
so this is part of the game as well.

webchick’s picture

Priority: Critical » Major

So the core committers have discussed this issue at length.

We have never blocked major releases of Drupal on security audits before. That includes releases where we have radically refactored things like the node access system, the menu/routing system, the form API, and other places where security is a must. It doesn't seem like it's really worth starting this trend now, especially for only one component of many. Additionally, a lot of this work is effectively being done by the work that's happened as part of
#2371629: [meta] Finalize Session and User Authentication API.

Therefore, downgrading this issue. It's still a worthy thing for someone to do, but doing it does not need to block D8's release.

However, what I can say that something we are have done is earmarked a chunk of the remaining D8 Accelerate funds for the Security Team, to enable them to run a program aimed at ferreting out any remaining security issues in Drupal 8, across the board. I don't know what that looks like yet, or what will ultimately get proposed (there are meetings about it next week in LA). But rest assured that we're taking security in D8 seriously. And any actual issues found will be critical/release-blocking on their own.

Version: 8.0.x-dev » 8.1.x-dev

Drupal 8.0.6 was released on April 6 and is the final bugfix release for the Drupal 8.0.x series. Drupal 8.0.x will not receive any further development aside from security fixes. Drupal 8.1.0-rc1 is now available and sites should prepare to update to 8.1.0.

Bug reports should be targeted against the 8.1.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.2.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.1.x-dev » 8.2.x-dev

Drupal 8.1.9 was released on September 7 and is the final bugfix release for the Drupal 8.1.x series. Drupal 8.1.x will not receive any further development aside from security fixes. Drupal 8.2.0-rc1 is now available and sites should prepare to upgrade to 8.2.0.

Bug reports should be targeted against the 8.2.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.3.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.6 was released on August 2, 2017 and is the final full bugfix release for the Drupal 8.3.x series. Drupal 8.3.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.4.0 on October 4, 2017. (Drupal 8.4.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.4.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.4 was released on January 3, 2018 and is the final full bugfix release for the Drupal 8.4.x series. Drupal 8.4.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.5.0 on March 7, 2018. (Drupal 8.5.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.5.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.6 was released on August 1, 2018 and is the final bugfix release for the Drupal 8.5.x series. Drupal 8.5.x will not receive any further development aside from security fixes. Sites should prepare to update to 8.6.0 on September 5, 2018. (Drupal 8.6.0-rc1 is available for testing.)

Bug reports should be targeted against the 8.6.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.8.x-dev

Drupal 8.6.x will not receive any further development aside from security fixes. Bug reports should be targeted against the 8.8.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.9.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.7 was released on June 3, 2020 and is the final full bugfix release for the Drupal 8.8.x series. Drupal 8.8.x will not receive any further development aside from security fixes. Sites should prepare to update to Drupal 8.9.0 or Drupal 9.0.0 for ongoing support.

Bug reports should be targeted against the 8.9.x-dev branch from now on, and new development or disruptive changes should be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.2.x-dev

Drupal 8 is end-of-life as of November 17, 2021. There will not be further changes made to Drupal 8. Bugfixes are now made to the 9.3.x and higher branches only. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.15 was released on June 1st, 2022 and is the final full bugfix release for the Drupal 9.3.x series. Drupal 9.3.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.4.x-dev branch from now on, and new development or disruptive changes should be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

xjm’s picture

Issue tags: -D8 critical triage deferred

 

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.9 was released on December 7, 2022 and is the final full bugfix release for the Drupal 9.4.x series. Drupal 9.4.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.5.x-dev branch from now on, and new development or disruptive changes should be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

andypost’s picture

Version: 9.5.x-dev » 11.x-dev