Hi,

time for an small update:

Please note that the packages offered below are WIP status and are intended
for testing only.

php-cas
=======

I've verified my patched version of php-cas against the apereo CAS
implementation and it looks as if it would work :)

The package is availble from here:
https://people.debian.org/~tobi/php-cas/

Packaging Repository: https://salsa.debian.org/lts-team/packages/php-cas

*I recommend using this package to develop patches for software not in Debian
but still affected by the php-cas AOI changes.*


fusiondirectory
===============

I've backported upstream patches for php-cas with the new API from upstram
and tested them locally (again using the apereo CAS server).

Packages are available at:
https://people.debian.org/~tobi/fusiondirectory

Packaging Repository: https://salsa.debian.org/lts-team/packages/fusiondirectory

If CAS is enabled in Fusiondirectory, it will *NOT* continue to work without 
user
interaction. Please see this NEWS file for details:
https://salsa.debian.org/lts-team/packages/fusiondirectory/-/blob/debian/buster/debian/NEWS

Abhijith is working on other CVE to fixed in fusiondirectory, and I will 
coordinate
with them accordingly.

Outlook
========

I will start working on php-cas for ELTS(stretch) and continue working
on fixing the reverse dependnices (LTS and ELTS).

Once those are ready, to avoid breaking dist-upgrades, I'll
also take a look into bullseye and will coordinate the uploads with the
security team

-- 
Cheers,
tobi

On Sat, Jun 24, 2023 at 01:43:12PM +0200, Tobias Frost wrote:
> Hi,
> 
> (Adding yadd as suggested on IRC, solicating yadd's input as well)
> 
> Some updates on php-cas:
> 
> I've continued to work on php-cas to better assess
> the situation: I've also received information to better
> assess the serverity of the CVE and now I think this issue
> should be fixed.
> (However, I'd like also to hear the opinion of the security team ;-))
> 
> <TL;DR:>
> 
> The test suite make me think my patch is working. I'd appreciate other people
> testing them too, though. (On my TODO list is to try with an real CAS Server)
> 
> The reverse dependencies for buster src:fusiondirectory and
> src:ocsinventory-server can be fixed quite easily, by adding
> configuration options and telling the users what to do.
> 
> For customers using non-packaged software using php-cas,
> they *will* need to update it:
> The phpCAS client initializer needs an additional $service_base_url
> parameter:
> 
> - static function client($server_version, $server_hostname, $server_port, 
> $server_uri, $changeSessionID = true)
> + static function client($server_version, $server_hostname, $server_port, 
> $server_uri, $service_base_url, $changeSessionID = true)
> 
> from upstream uppgrading guide:
>     PhpCAS now requires an additional service base URL argument when 
> constructing
>     the client class, similar to other CAS client's serverName config. It 
> accepts
>     any argument of:
> 
>     1. A service base URL string. The service URL discovery will always use 
> this
>     server name (protocol, hostname and port number) without using any 
> external
>     host names.
>     2. An array of service base URL strings. The service URL discovery will 
> check
>     against this list before using the auto discovered base URL. If there is 
> no
>     match, the first base URL in the array will be used as the default. This
>     option is helpful if your PHP website is accessible through multiple 
> domains
>     without a canonical name, or through both HTTP and HTTPS.
>     3. A class that implements CAS_ServiceBaseUrl_Interface. If you need to
>     customize the base URL discovery behavior, you can pass in a class that
>     implements the interface.
> 
> </TL;DR>
> 
> 
> 
> My more detailed notes:
> 
> Upstream Test suite:
> ####################
> 
> The test suite for 1.3.6 is not packaged in the debian package,
> but I made a branch including it:
> https://salsa.debian.org/lts-team/packages/php-cas/-/tree/debian/buster-with-testsuite
> 
> The test suite is patched as required for CVE-2022-29369, as the CAS_Client 
> class
> needs an additional "service" parameter (this is the API breakage)
> 
> Before the patch for the CVE:
>     $ phpunit TestSuite.php
>     OK, but incomplete, skipped, or risky tests!
>     Tests: 79, Assertions: 412, Incomplete: 4, Risky: 2.
> 
> After patch for the CVE: (The patch adds some tests.)
>     $ phpunit TestSuite.php
>     OK, but incomplete, skipped, or risky tests!
>     Tests: 92, Assertions: 425, Incomplete: 4, Risky: 2.
> 
> (When removing the additional tests (file: 
> test/CAS/Tests/ServiceBaseUrlTest.php):
>     $ phpunit TestSuite.php
>     OK, but incomplete, skipped, or risky tests!
>     Tests: 79, Assertions: 412, Incomplete: 4, Risky: 2.)
> 
> 
> Reverse Dependencies for buster:
> ################################
> 
>     php-cas
>       Reverse Depends: fusiondirectory (1.0.19-1+deb9u1)
>       Reverse Depends: ocsinventory-reports (2.5+dfsg1-1)
> 
> fusiondirectory
> ---------------
> 
>     - Use of php-cas is optional, (get_cfg_value('casActivated'))
>     - Uses php-cas in core/html/index.php, likely only change required
>       is to add the new $service_base_url parameter after 
> core/html/index.php:128
>       (upstream has refactored in the meantime, upstream has change at [a], 
> but
>        it seems that we don't have the CasClientServiceName config entry in 
> buster,
>        probably can be backported.)
>      - Possibly users will need to run fusiondirectory-insert-schema and 
> possibly
>        reconfigure fusiondirectory and possibly a Debian.NEWS should tell 
> them so.
>        (needs to be evaluated once I have patches)
> 
> ocsinventory-reports
> --------------------
>      ( yadd is Maintainer of this package and probably can better comment on 
> it)
>      - Use of php-cas is optional, ($affich_method == 'CAS')
>        - not default
>        - seems that /usr/share/ocsinventory-reports/backend/AUTH/auth.php 
> needs to be
>          edited to make it work. (which is not a conffile.)
>      - 3 locations initializes php-cas and will needs updating with 
> $service_base_url
>             ocsreports/backend/AUTH/methode/cas.php:$cas = new phpCas();
>             ocsreports/update.php:        $cas = new phpCas();
>             ocsreports/require/header.php:        $cas = new phpCas();
>        - As the auth method is not a conffile, every update will reset user 
> configuration,
>          defaulting back to HTML-Form authenticication.
>        - Cas confiuration is done in 
> /usr/share/ocsinventory-reports/backend/require/cas.config.php:
>          This is a central point where $service_base_url can be configured 
> (it also not a conffile…)
>      (- ocsinventory-server is on limited security support, reason given:
>        Details: Only supported behind an authenticated HTTP zone)
> 
> 
> 
> [a] 
> https://github.com/fusiondirectory/fusiondirectory/blob/919b407cdf5c409b20c500e6eadecf0c62270aac/include/login/class_LoginCAS.inc#L48C16-L48C16
> 
> On Tue, Jun 20, 2023 at 04:14:42PM +0200, Tobias Frost wrote:
> > (As suggested, I'm moving the discussion to debian-lts@lists.debian.org, 
> > CC'ing 
> > the security team)
> > 
> > > On 19/06/2023 18:17, Tobias Frost wrote:
> > > > Hey,
> > > > 
> > > > As I am currently preparing a fix for php-cas to tackle CVE-2022-39369 
> > > > [1], and
> > > > as the changes required are breaking changes, I'd like to discuss 
> > > > whether the
> > > > vulnerability justifies a breaking change, or if the issue should be 
> > > > ignored instead.
> > > > (Maybe feedback from interested customers can be collected, so that 
> > > > they can assess
> > > > the impact on their side already.)
> > > > 
> > > > I've packaged my backport of the patch and uploaded it to [3] as an 
> > > > (untested) preview.
> > > > 
> > > > The breaking change: users of php-cas needs to perform additional steps 
> > > > when
> > > > using the php module, as described in docs/updating of the upstream pull
> > > > request fixing the issue: [2]
> > > > 
> > > >      phpCAS now requires an additional service base URL argument when
> > > >      constructing the client class, similar to other CAS client's 
> > > > serverName config.
> > > > 
> > > > Upstream asses the situation as [4]
> > > > 
> > > >      This vulnerability may allow an attacker to gain access to a 
> > > > victim's account
> > > >      on a vulnerable CASified service without victim's knowledge, when 
> > > > the victim
> > > >      visits attacker's website while being logged in to the same CAS 
> > > > server.
> > > > 
> > 
> > 
> > The patch applied to the package is this commit:
> > https://salsa.debian.org/lts-team/packages/php-cas/-/commit/2c2b5f73da55f5c6d9f69e1ac11b3a1ee565d435
> > (also debdiff attached.)
> > 
> > -- 
> > Cheers, 
> > tobi
> > 
> > 
> 
> 


Attachment: signature.asc
Description: PGP signature

Reply via email to