On Fri, 2021-12-17 at 06:59 +0200, Alexander Bokovoy wrote:
> On to, 16 joulu 2021, Sam Morris via FreeIPA-users wrote:
> > > The CA has its own upgrade code which runs unconditionally and I think
> > > that's how both secret and requiredSecret got added to server.xml. I
> > > wasn't able to duplicate the 403 though, it always just worked for me.
> > > Perhaps it has to go through more than one upgrade cycle. I did my
> > > testing on RHEL 8.
> > > 
> > > I filed https://bugzilla.redhat.com/show_bug.cgi?id=2006070 against
> > > pki-core.
> > 
> > I think I just ran into this, or a related issue, when upgrading today on 
> > two RHEL 8 machines.
> > 
> > According to etckeeper (great tool!):
> > 
> >    Package changes:
> >    -0:ipa-client-4.9.6-6.module+el8.5.0+12660+88e16a2c.x86_64
> >    -0:ipa-client-common-4.9.6-6.module+el8.5.0+12660+88e16a2c.noarch
> >    -0:ipa-common-4.9.6-6.module+el8.5.0+12660+88e16a2c.noarch
> >    +0:ipa-client-4.9.6-10.module+el8.5.0+13587+92118e57.x86_64
> >    +0:ipa-client-common-4.9.6-10.module+el8.5.0+13587+92118e57.noarch
> >    +0:ipa-common-4.9.6-10.module+el8.5.0+13587+92118e57.noarch
> >    -0:ipa-server-4.9.6-6.module+el8.5.0+12660+88e16a2c.x86_64
> >    -0:ipa-server-common-4.9.6-6.module+el8.5.0+12660+88e16a2c.noarch
> >    -0:ipa-server-dns-4.9.6-6.module+el8.5.0+12660+88e16a2c.noarch
> >    +0:ipa-server-4.9.6-10.module+el8.5.0+13587+92118e57.x86_64
> >    +0:ipa-server-common-4.9.6-10.module+el8.5.0+13587+92118e57.noarch
> >    +0:ipa-server-dns-4.9.6-10.module+el8.5.0+13587+92118e57.noarch
> >    -0:python3-ipaclient-4.9.6-6.module+el8.5.0+12660+88e16a2c.noarch
> >    -0:python3-ipalib-4.9.6-6.module+el8.5.0+12660+88e16a2c.noarch
> >    -0:python3-ipaserver-4.9.6-6.module+el8.5.0+12660+88e16a2c.noarch
> >    +0:python3-ipaclient-4.9.6-10.module+el8.5.0+13587+92118e57.noarch
> >    +0:python3-ipalib-4.9.6-10.module+el8.5.0+13587+92118e57.noarch
> >    +0:python3-ipaserver-4.9.6-10.module+el8.5.0+13587+92118e57.noarch
> > 
> > Upgrading the above *added* requiredSecret="newSecret" to the AJP Connector 
> > elements within /etc/pki/pki-tomcat/server.xml.
> > 
> > The existing secret="oldSecret" attribute was not changed. Neither was 
> > "secret=oldSecret" changed in the ProxyPassMatch directives in 
> > /etc/httpd/conf.d/ipa-pki-proxy.conf.
> > 
> > It looks like tomcat uses the value of requiredSecret= in preference to 
> > secret= if both are supplied.
> > 
> > The fix was to remove requiredSecret="newSecret" from the tomcat config 
> > file & restart pki-tomcatd@pki-tomcat.
> > 
> > But that bugzilla is about migrating from requiredSecret="oldSecret" -> 
> > secret="oldSecret". So I'm not sure I've hit that bug exactly...
> 
> The packages above aren't including any additional patches related to
> what you see here. They only include changes for CVE-2020-25717 which
> has nothing to do with CA operations.
> 
> What happens, I suspect, is that both pki upgrade code and ipa upgrade
> code triggered and pki upgrade code adds 'requiredSecret' part. IPA
> upgrade code is present since FreeIPA 4.9.0, since March 2020, more than
> 1.5 years ago.

Ok. Piecing together the timeline, I think I have merely
reproduced https://bugzilla.redhat.com/show_bug.cgi?id=2006070 after
all.

I have:

@ 2021-11-12 01:31

   [root@ipa5 ~]# cat /var/log/pki/pki-upgrade-10.11.2.log 
   Upgrading PKI system configuration at Fri 12 Nov 01:31:11 UTC 2021.

... corresponds with the upgrade of pki-base-10.10.5-
3.module+el8.4.0+11039+635979e4.noarch -> pki-base-10.11.2-
2.module+el8.5.0+12735+8eb38ccc.noarch.

This upgrade modified server.xml, replacing requiredSecret="oldSecret"
with secret="oldSecret".

Per https://bugzilla.redhat.com/show_bug.cgi?id=2006070 this should not
have happened. Because it breaks the assumption in ipa-server-upgrade
that Tomcat >= 0.9.31.0 performs this replacement.

@ 2021-12-16 09:33

This is the upgrade where ipa-server-upgrade ran, which added 
requiredSecret="newSecret" to server.xml which broke (communication
with) the CA subsystem.

Looking through
https://github.com/freeipa/freeipa/blob/56e4f33ce630a6a310518f25b67d46fb31f7919e/ipaserver/install/dogtaginstance.py#L351
... 'tomcat version' would have been 9.0.30.0, so secretattr and
oldattr would both be 'requiredSecret'; since, at this time, server.xml
did not have a requiredSecret=, only a secret=, the code code generated
a new secret and set it as the value of a new requiredSecret=
attribute.

Phew, that took some digging!

As for the fix I made to server.xml, it would just be reverted by ipa-
server-upgrade, until the fixed pki-base is installed.

I'll bear that in mind if there are any more ipa-server updates before
pki-base is fixed.

Thanks :)

-- 
Sam Morris <https://robots.org.uk/>
PGP: rsa4096/CAAA AA1A CA69 A83A 892B  1855 D20B 4202 5CDA 27B9
_______________________________________________
FreeIPA-users mailing list -- freeipa-users@lists.fedorahosted.org
To unsubscribe send an email to freeipa-users-le...@lists.fedorahosted.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedorahosted.org/archives/list/freeipa-users@lists.fedorahosted.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to