Closed (won't fix)
Project:
Drupal.org site moderators
Component:
Site organization
Priority:
Normal
Category:
Feature request
Assigned:
Unassigned
Reporter:
Created:
30 Nov 2007 at 17:36 UTC
Updated:
22 Dec 2009 at 17:28 UTC
Repro:
1. Install pathauto 1.2 (a release without security bug)
2. check for updates and you see the module is marked as "insecure"...
3. but the release DRUPAL-5--2-0-BETA4 was only a security fix for DRUPAL-5--2-0-BETA3 and not for the 1.x branch
Expected result:
1. only show security warning for e.g. if "same branch" or if the used version is insecure.
Comments
Comment #1
dwwpathauto 5.x-2.0 is now the recommended version of pathauto. since there was an update between your current release and the 5.x-2.0 release that was flagged as a security update, update_status is telling you that you'd better upgrade to the latest release due to potential security problems. there's no bug here.
Comment #2
hass commentedPardon, but...
1. Pathauto Version 1.2 do NOT have a security problem.
2. Pathauto Version 2.x-BETA3 have a security problem.
3. Pathauto Version 2.0 is the latest release - ok.
4. Only if i have installed 2.x-BETA3 or earlier 2.x versions - update_status should tell me about the security hole... remember 1.2 do not have this bug.
Version 1.2 do not have a security bug, but update_status is telling me it have. Why should this not a bug if update status is telling me something *wrong*?
As side note - i have v1.2 installed and cannot update, while 2.0 requires a newer PHP version i have installed... but thats a different point.
Comment #3
dwwremember 1.2 do not have this bug. update_status has no way to know this. all it knows is:
a) you're running an older version, no longer recommended by the maintainer.
b) in between your version and the currently recommended release, a security vulnerability was fixed.
therefore, you should upgrade.
what if 5.x-1.2 is so broken and insecure that greggles dropped it and decided it wasn't worth fixing? update_status never tells you? no thanks.
i repeat, there's no bug here.
Comment #4
hass commenteda) that's not the point! Asside a maintainer should support more then one branch and maybe there is no need to upgrade if you do not need the features of an 2.x branch.
b) that's simply wrong. The bug was in the
tokenmodule pathauto 2.x is based on. 1.2 does not use this token module and is therefor not affected by the problem. greggles marked pathauto and pathauto haven't had a bug... but that's all not the point here - the pathauto example simply show us what can happen in different situations. Therefore understand this only as an example, please.Why should i upgrade? I don't need the new features and i cannot upgrade because of a newer PHP version is required.
There are several things not possible with project/update_status:
1. Maintainers cannot limit the "security update" status per branches today. Version 1.x maybe very stable with a few features, but 2.x branch maybe "full" of new and buggy features that needs often security fixes.
2. Both branches are maintained - think about "project" - you are fixing not only one branch... (DRUPAL-4-7, DRUPAL-4-7--2)
3. And maintainers are not able to add more then one "Official release" today...
If there is a way to accomplish the above tasks today, then close this case, but if not - try to understand that there is a real need about this functionality and not simply close this. Think about "project" and what will happen if you need to release a security update for DRUPAL-5--2 and DRUPAL-5--1 is not affected, but gets other fixes, too.
This could be a missing "project" feature in the first step and a missing in update_status in the second, but for sure there is a real need about this. Pathauto is only ONE example here, what could happen.
Thank you for your understanding.
Comment #5
hass commentedMoving to project, while we need to implement "Release type" settings per branch first.
Comment #6
hass commentedComment #7
dwwYes, I understand the problem. If this is now what you're talking about, it's duplicate with http://drupal.org/node/176776 and/or http://drupal.org/node/189546#comment-624677
What you keep misunderstanding is the limitation in project* that it still has a notion of a single recommended branch for a given version of core. Before the release system, there was only *ever* 1 branch per version of core. You don't seem to appreciate how difficult it is to make sweeping changes in the Drupal community. So, I had to move from only 1 branch ever, to 1 that's recommended, with the possibility of others. There are many larger changes I would have liked to make all at the same time, but it was simply impossible to get the community to agree to all of them at once, so I had to pick my battles and make the most important changes first, and lay the ground work for others.
With hunmonk, aclight, drewish, and a small handful of other people in the past few months, things have finally changed for the better with project* regarding outside help. At long last, I'm not the only person generating, testing, and deploying patches. But, before that, it was overwhelmingly me operating on my own, entirely unpaid/volunteer, in what little time I could spare. Much of that time was sucked up fending off duplicate requests in the queue from people who hadn't bothered to read the plans I had clearly laid out for what needed to happen next. So, things didn't always move as fast as I'd like to see them (and they still don't, but it's at least getting better).
Back to your original issue, the only way for update_status to know that 5.x-1.2 is secure, while 5.x-2.0-beta2 is not and 5.x-2.0 is again secure, is if we added another "Release type" term called "Insecure". It has nothing to do with trying to apply these taxonomy terms to branches (which is both impossible given the architecture of Drupal, and itself wrong, since 2.0 might be fine, 2.1 introduces a vulnerability along with a new feature, and 2.2 is the security update that fixes 2.1). Every time a "security update" release is created, the maintainer and/or security team would have to back and flag all the insecure versions retroactively with this term. Then, update_status would notice on the next check that the version you're currently running is now marked insecure. In a perfect world, that'd be the best solution to this problem.
Unfortunately, it creates even more work and potential for maintainer error. :( That's another thing you don't seem to appreciate -- how difficult it is to try to get people to correctly use the tools they already have. We constantly get releases marked with "Security update" that shouldn't be. The security team is already stretched thing, so the burden of figuring out exactly which existing releases are vulnerable to a given bug and which are not, and marking all of the release nodes accordingly, is a lot of extra work. All that effort just to handle an edge case where a switch from one branch to another is accompanied by a security update and update_status accidentally tells you to upgrade for security concerns, when really you should just upgrade because that's now the maintainer's recommended version.
If we do this at all, we'd need a good administrative interface for selecting a set of release nodes all at once and bulk adding/removing release type terms from them. Core doesn't allow this, so we'd need custom code for d.o to make this work. However, if we're actually going to ask the security team to maintain this term (both for viewing on d.o, and for update_status to report), we have to make it as easy as possible for us to do our job.
For all of this to be really ideal, *only* d.o users with the right permission would even be able to use the "security update" and "insecure" terms on a release node, bulk editing or not. That's functionality core doesn't provide, either, so we'd need more custom code to make it work.
Feel free to actually contribute some code instead of bitterly complaining about how I don't understand, and if only I saw things your way the world would be a better place. I can't tell you how many times I've written up lists of issues and roadmaps and everything else to encourage and enable people to help.
Comment #8
hass commentedYes, this sounds like the very best solution. The administrative overhead looks acceptable to me if we get a correct information per release, what finally help modules like update_status and update.module to distinguish an insecure release for sure. Thank you.
Comment #9
dwwGreat, now that that's clear, here's what would have to be done before this could actually happen:
A) Agreement from the rest of the security team that it's worth doing all this work for such a relatively minor edge case.
B) New issue against update_status with code to see if the current release is marked as "insecure" and warn the site admin accordingly.
C) Agreement from Gabor and/or Dries that they'd be willing to accept a reroll of the patch from (B) for core this late in D6.
D) d.o-specific helper code to restrict these terms to a certain permission (for now, could be either 'administer nodes' or 'administer projects' i guess). this belongs in the drupal.org module issue queue.
E) d.o-specific helper code to mass edit release nodes to set "Release type" terms. also belongs in the drupal.org module issue queue.
F) Draft handbook text about how all this works and what module maintainers need to do about all of this.
Once those 6 things are done, we can actually create this new term. We can use this issue to coordinate progress on these tasks, so once other issues are submitted/completed, we can update here. When A through F are all done, we can actually implement the new term. I'm not spearheading this effort.
Comment #10
dwwRe: (A): I just emailed the security team soliciting feedback on this. That's as far as I'm going to take this effort at this time.
Comment #11
moshe weitzman commentedI don't know about everyone else, but I am exhausted after reading Derek's todo list in #9. I personally think this is too much work for an edge case. If someone wants to do it voluntarily, then I congratulate them. I agree that i is low prority for the project team and drupal.org in general.
Comment #12
hunmonk commentedi'm in agreement with moshe. the project team and d.o infra/security team have more pressing tasks than servicing this edge case. any progress would have to come from an outside volunteer.
Comment #13
dwwSee http://groups.drupal.org/node/7440 for a proposal for a complete solution to all of this.
Comment #14
heine commentedAs one of the persons who most likely will be doing the actual 'insecure' marking, I strongly disagree. The marking is not the problem, looking through the code is (as dww indicated already). IMO if 5.x-1.1 is not vulnerable, but 5.x-1.2 is and 5.x-1.3 fixes the issue, all users should upgrade.
Comment #15
silverwing commentedWebmaster Issue Queue Cleanup - 2 year old issue
Postponed for 2 years... is tagging the project release something planned? (It seems that the project release tables have gotten more refined in the last couple months re: http://groups.drupal.org/node/7440#comment-24654 )
Comment #16
dwwYup, no outside help ever came, and I have more important things to do.