Plugin: Liquibase Runner

69 views
Skip to first unread message

Robert Reeves

unread,
Mar 6, 2020, 4:52:30 PM3/6/20
to jenkin...@googlegroups.com, Keith Collison

Hi, Team!

 

I’m working with Keith Collison on his Liquibase Runner plugin. I noticed that there is a security issue with it here: https://wiki.jenkins.io/display/JENKINS/Liquibase+Runner. Also noticed it’s not showing up on the new(ish) Jenkins.io pages for plugins. Is this due to the security issue?

 

Here's the stated issue: https://jenkins.io/security/advisory/2018-03-26/#SECURITY-519

 

Keith thinks this might be due to classloading in the Util class but that doesn’t look particularly strange and unnatural to me.

 

Can I get some pointers on what the issue is?

 

Thanks!

 

Robert

 

Robert Reeves

CTO | Datical

Mobile: 512 422 2443

Email: r...@datical.com

Website: www.datical.com

 

 

Robert Reeves

unread,
Mar 6, 2020, 4:52:30 PM3/6/20
to jenkin...@googlegroups.com, Keith Collison

Ha! I found the JEP-200 blog post. I think we have a path to get this corrected and secure. Thanks!

Daniel Beck

unread,
Mar 6, 2020, 5:12:21 PM3/6/20
to JenkinsCI Developers, Keith Collison
Keith has access to SECURITY-519 in the Jenkins issue tracker using his account 'prospero238'. That issue contains complete steps that allow a regular user with Job/Configure permission to execute arbitrary code on the Jenkins master JVM, just as stated in the advisory.

In cases of very serious security vulnerabilities, such as this one, we suspend distribution of plugins so they are no longer available on Jenkins update sites. I did that here. This will remain until the issue is resolved to the satisfaction of the Jenkins security team.

Robert Reeves

unread,
Mar 6, 2020, 5:53:05 PM3/6/20
to jenkin...@googlegroups.com

Roger that! Are we allowed to use the META-INF/hudson.remoting.ClassFilter fix listed here (https://jenkins.io/blog/2018/01/13/jep-200/) to resolve it?

 

Thanks for keeping Jenkins safe!

 

 

Robert Reeves

CTO | Datical

Mobile: 512 422 2443

Email: r...@datical.com

Website: www.datical.com

 

 

From: jenkin...@googlegroups.com <jenkin...@googlegroups.com> On Behalf Of Daniel Beck
Sent: Friday, March 6, 2020 4:12 PM
To: JenkinsCI Developers <jenkin...@googlegroups.com>
Cc: Keith Collison <keit...@gmail.com>

--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CAMo7PtKa5j0cEcFit6fCqTEcbpNG8dh9ZU8CnDFbPxhXujJ9tA%40mail.gmail.com.

Daniel Beck

unread,
Mar 7, 2020, 9:03:22 AM3/7/20
to Jenkins Dev


> On 6. Mar 2020, at 23:52, Robert Reeves <r...@datical.com> wrote:
>
> Are we allowed to use the META-INF/hudson.remoting.ClassFilter fix listed here (https://jenkins.io/blog/2018/01/13/jep-200/) to resolve it?

If the result is safe, I don't think we care much how you got there. But overly complicated solutions could mean we're actually unable to confirm the fix is effective, or that it will take us a really long time to do.

That said, I don't see how JEP-200 or the ClassFilter workaround would apply here.

Not having dug that deep into the purpose of the vulnerable functionality, I would recommend you move any functionality requiring custom classes being loaded out of the Jenkins master process, not just for security, but also stability. The second best approach would probably be to move the driver/classloader configuration to a UI in the global configuration only available to Jenkins admins.

Robert Reeves

unread,
Apr 16, 2020, 2:17:07 PM4/16/20
to jenkin...@googlegroups.com, Keith Collison, Nathan Voxland

Hi!

 

Just to follow up…we’re trying to get this security issue resolved but have not been able to get access to SECURITY-519. How can we view that so we can fix the issue?

 

Thanks!

 

Robert

 

 

Robert Reeves

CTO | Datical

Mobile: 512 422 2443

Email: r...@datical.com

Website: www.datical.com

 

 

From: jenkin...@googlegroups.com <jenkin...@googlegroups.com> On Behalf Of Daniel Beck


Sent: Friday, March 6, 2020 4:12 PM
To: JenkinsCI Developers <jenkin...@googlegroups.com>
Cc: Keith Collison <keit...@gmail.com>
Subject: Re: Plugin: Liquibase Runner

 

Keith has access to SECURITY-519 in the Jenkins issue tracker using his account 'prospero238'. That issue contains complete steps that allow a regular user with Job/Configure permission to execute arbitrary code on the Jenkins master JVM, just as stated in the advisory.

 

In cases of very serious security vulnerabilities, such as this one, we suspend distribution of plugins so they are no longer available on Jenkins update sites. I did that here. This will remain until the issue is resolved to the satisfaction of the Jenkins security team.

 

--

Daniel Beck

unread,
Apr 17, 2020, 4:58:33 AM4/17/20
to Jenkins Developers, Keith Collison, Nathan Voxland, Robert Reeves


> On 16. Apr 2020, at 20:16, Robert Reeves <r...@datical.com> wrote:
>
> Just to follow up…we’re trying to get this security issue resolved but have not been able to get access to SECURITY-519. How can we view that so we can fix the issue?

As I wrote in a previous response, Keith's account has access to the issue. Since you're working with him per your first email in this thread, ask him for the details.

From a Jenkins project POV, Keith is the only maintainer of the plugin, and the only one entitled to view the security issue information for his plugin. (While we can add additional users to the private issue, that requires consent by the current maintainer.)

The only option that doesn't require active involvement from a current maintainer is to request a transfer of maintainership of the plugin per https://jenkins.io/doc/developer/plugin-governance/adopt-a-plugin/

Robert Reeves

unread,
Apr 17, 2020, 8:51:01 AM4/17/20
to Daniel Beck, Jenkins Developers, Keith Collison, Nathan Voxland
Thanks, Daniel!

Sounds like adoption is the way to go:

Link to a plugin you want to adopt: https://github.com/jenkinsci/liquibase-runner-plugin
Link(s) to pull requests you want to deliver, if applicable: https://github.com/jenkinsci/liquibase-runner-plugin/pull/16 and more to come after we get access to the security tracker
Your GitHub username/id: https://github.com/r2datical & https://github.com/nvoxland
Your Jenkins infrastructure account id. Create your account if you don’t have one: r2datical & nvoxland

Keith has been great and has stated he's open to getting some help on this the Liquibase team. We are indebted to him.

Thanks!

Robert


Robert Reeves
CTO | Datical


Mobile: 512 422 2443
Email: r...@datical.com
Website: www.datical.com












-----Original Message-----
From: Daniel Beck <m...@beckweb.net>
Sent: Friday, April 17, 2020 3:58 AM
To: Jenkins Developers <jenkin...@googlegroups.com>
Cc: Keith Collison <keit...@gmail.com>; Nathan Voxland <nat...@datical.com>; Robert Reeves <r...@datical.com>
Subject: Re: Plugin: Liquibase Runner



Robert Reeves

unread,
Apr 21, 2020, 10:35:51 AM4/21/20
to Daniel Beck, Jenkins Developers, Keith Collison, Nathan Voxland
Hi, team!

Nathan updated the PR (https://github.com/jenkinsci/liquibase-runner-plugin/pull/16) to fix the security issue without relying on the class whitelist in META-INF.

How's the adoption process going? We've got a webinar hosted by CloudBees on Thursday and we'd very much like to talk about this release then.

Robert Reeves

unread,
Apr 23, 2020, 10:28:11 AM4/23/20
to Daniel Beck, Jenkins Developers, Keith Collison, Nathan Voxland
Just wanted to check on the adoption status. We have a PR submitted that resolves the security issue. We'd like to be able to push to master and do a release. Thanks!

Tim Jacomb

unread,
Apr 23, 2020, 11:53:02 AM4/23/20
to jenkin...@googlegroups.com, Daniel Beck, Keith Collison, Nathan Voxland
Has Keith approved this somewhere? Here or in GitHub?

On Thu, 23 Apr 2020 at 15:28, Robert Reeves <r...@datical.com> wrote:
Just wanted to check on the adoption status. We have a PR submitted that resolves the security issue. We'd like to be able to push to master and do a release. Thanks!

--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.

Robert Reeves

unread,
Apr 23, 2020, 1:40:49 PM4/23/20
to jenkin...@googlegroups.com, Daniel Beck, Keith Collison, Nathan Voxland

I’ve emailed him a couple times and messaged him on GitHub. We emailed back and forth the first week of March but haven’t gotten a response since then. Right now the plugin is in security jail because of JEP-200 and we’re trying to bail it out with the PR we’ve submitted.

 

We’re very appreciative of his work and a huge fan of his.

 

 

Robert Reeves

CTO | Datical

Mobile: 512 422 2443

Email: r...@datical.com

Website: www.datical.com

Keith Collison

unread,
Apr 23, 2020, 2:24:47 PM4/23/20
to Robert Reeves, jenkin...@googlegroups.com, Daniel Beck, Nathan Voxland
Sorry I've been out of pocket -- things have been a little crazy on my end lately.

I'll provide feedback before the end of today.

Robert Reeves

unread,
Apr 23, 2020, 2:50:34 PM4/23/20
to Keith Collison, jenkin...@googlegroups.com, Daniel Beck, Nathan Voxland

Of course, Keith. We love your work and are beyond appreciative. Thanks!

Robert Reeves

unread,
Apr 27, 2020, 12:26:05 PM4/27/20
to jenkin...@googlegroups.com, Keith Collison, Daniel Beck, Nathan Voxland

Hi, Team!

 

Keith has been great. He’s accepted our PR and added my r2datical GH account to the repos at https://github.com/jenkinsci/liquibase-runner-plugin.

 

However, we still need to add Nathan. How do we add GH account nvoxland to the Jenkins CI group so that Keith can add Nathan as a contributor?

 

Thanks!

 

Robert

Gavin Mogan

unread,
Apr 27, 2020, 3:00:52 PM4/27/20
to Jenkins Developers, Keith Collison, Daniel Beck, Nathan Voxland
A bunch of us can add GitHub ids to the teams via IRC. We just need to know GitHub ids. You can also update the contributors directly inside the repo, but the teams and org access is the recommended way.

If your talking about releases, you need to make a PR to the permission updater repo. https://github.com/jenkins-infra/repository-permissions-updater

Robert Reeves

unread,
Apr 28, 2020, 9:56:34 AM4/28/20
to jenkin...@googlegroups.com, Keith Collison, Daniel Beck, Nathan Voxland

Hi, team!

 

My PR to grant access to my GitHub/Jenkins.io account (they’re the same), had an issue with the automated checks. I’m not sure what I can do here to fix it: https://github.com/jenkins-infra/repository-permissions-updater/pull/1513

 

Thanks!

 

Robert

 

From: ga...@gavinmogan.com <ga...@gavinmogan.com> On Behalf Of 'Gavin Mogan' via Jenkins Developers
Sent: Monday, April 27, 2020 2:00 PM
To: Jenkins Developers <jenkin...@googlegroups.com>

Slide

unread,
Apr 28, 2020, 11:09:47 AM4/28/20
to jenkin...@googlegroups.com, Keith Collison, Daniel Beck, Nathan Voxland
Baptiste closed and reopened which caused another build, it looks good now.



--

Robert Reeves

unread,
Apr 28, 2020, 12:07:54 PM4/28/20
to jenkin...@googlegroups.com, Keith Collison, Daniel Beck, Nathan Voxland

Robert Reeves

unread,
Apr 29, 2020, 9:31:26 AM4/29/20
to jenkin...@googlegroups.com, Keith Collison, Daniel Beck, Nathan Voxland

Hi, Team! Just checking on the PR. As far as I can tell, it’s passed the checks. Slide asked me to attach the thread to the PR and I’ve done that. What’s next?

 

https://github.com/jenkins-infra/repository-permissions-updater/pull/1513

 

Thanks!

 

Robert

Robert Reeves

unread,
May 1, 2020, 9:15:19 AM5/1/20
to jenkin...@googlegroups.com

Hi, Team!

 

Thanks for accepting the PR to give my GitHub/Artifactory user access to release the plugin.

 

My GitHub user is r2datical and accounts.jenkins.io user is r2datical. Same one I’ve used for the daticaldb plugin. I’ve logged into the Artifactory instance with that account. However, I’m getting the 403 error still:

 

[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy (default-deploy) on project liquibase-runner: Failed to deploy artifacts: Could not transfer artifact org.jenkins-ci.plugins:liquibase-runner:hpi:1.3.0 from/to maven.jenkins-ci.org (https://repo.jenkins-ci.org/releases/): Authorization failed for https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/liquibase-runner/1.3.0/liquibase-runner-1.3.0.hpi 403 Forbidden -> [Help 1]

 

Is this a timing thing or is there another step I need to perform?

 

Thanks!

 

Robert

 

 

From: jenkin...@googlegroups.com <jenkin...@googlegroups.com> On Behalf Of Robert Reeves
Sent: Wednesday, April 29, 2020 8:31 AM
To: jenkin...@googlegroups.com
Cc: Keith Collison <keit...@gmail.com>; Daniel Beck <m...@beckweb.net>; Nathan Voxland <nat...@datical.com>

--

You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.

Tim Jacomb

unread,
May 1, 2020, 9:44:42 AM5/1/20
to jenkin...@googlegroups.com
I would check you deploy credentials in your settings.xml as a first step, it should be fairly quick to give you permission unless the job is broken

Robert Reeves

unread,
May 1, 2020, 9:54:10 AM5/1/20
to jenkin...@googlegroups.com

Thanks, Tim! Verified that the settings are set with the correct username and password as described here: https://www.jenkins.io/doc/developer/publishing/releasing/. I have gone here (https://repo.jenkins-ci.org/webapp/#/home) and verified the credentials allow me to log in.

 

Is there more information I can share to help solve this?

 

Thanks!

 

 

From: jenkin...@googlegroups.com <jenkin...@googlegroups.com> On Behalf Of Tim Jacomb
Sent: Friday, May 1, 2020 8:44 AM
To: jenkin...@googlegroups.com
Subject: Re: Plugin: Liquibase Runner

 

I would check you deploy credentials in your settings.xml as a first step, it should be fairly quick to give you permission unless the job is broken

Daniel Beck

unread,
May 1, 2020, 1:21:10 PM5/1/20
to Jenkins Developers


> On 1. May 2020, at 15:15, Robert Reeves <r...@datical.com> wrote:
>
> [INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy (default-deploy) on project liquibase-runner: Failed to deploy artifacts: Could not transfer artifact org.jenkins-ci.plugins:liquibase-runner:hpi:1.3.0 from/to maven.jenkins-ci.org(https://repo.jenkins-ci.org/releases/): Authorization failed for https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/liquibase-runner/1.3.0/liquibase-runner-1.3.0.hpi 403 Forbidden -> [Help 1]

https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/liquibase-runner/1.3.0/ exists and has for years. We do not allow deletion/replacement.

Robert Reeves

unread,
May 1, 2020, 2:35:35 PM5/1/20
to jenkin...@googlegroups.com
Sure, but that's the weird thing...was attempting to release 1.4.2. I guess something screwy happened with my release environment. So, I just zapped the whole thing, git clone'd again, and it worked with "mvn release:prepare release:perform". Guess it got into a weird state with the permission issues previously. It worked after that. Thanks!

https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/liquibase-runner/1.4.2/




-----Original Message-----
From: jenkin...@googlegroups.com <jenkin...@googlegroups.com> On Behalf Of Daniel Beck
Sent: Friday, May 1, 2020 12:21 PM
To: Jenkins Developers <jenkin...@googlegroups.com>
Subject: Re: Plugin: Liquibase Runner



> On 1. May 2020, at 15:15, Robert Reeves <r...@datical.com> wrote:
>
> [INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy (default-deploy) on project liquibase-runner: Failed to deploy artifacts: Could not transfer artifact org.jenkins-ci.plugins:liquibase-runner:hpi:1.3.0 from/to maven.jenkins-ci.org(https://repo.jenkins-ci.org/releases/): Authorization failed for https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/liquibase-runner/1.3.0/liquibase-runner-1.3.0.hpi 403 Forbidden -> [Help 1]

https://repo.jenkins-ci.org/releases/org/jenkins-ci/plugins/liquibase-runner/1.3.0/ exists and has for years. We do not allow deletion/replacement.

--
You received this message because you are subscribed to the Google Groups "Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/164375EB-BF92-48C0-86A6-D3965295C60C%40beckweb.net.
Reply all
Reply to author
Forward
0 new messages