GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — doc: describe what security issues are by sam-github · Pull Request #14485 · nodejs/node

Conversation

@sam-github

@sam-github sam-github commented Jul 25, 2017

Copy link
Copy Markdown
Contributor

Fix nodejs/security-wg#18

Checklist
  • documentation is changed or added
  • commit message follows commit guidelines
Affected core subsystem(s)

doc,security

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@nodejs-github-bot nodejs-github-bot added the doc Issues and PRs related to Node.js documentation. label Jul 25, 2017
Trott
Trott reviewed Jul 25, 2017
View reviewed changes
Comment thread README.md Outdated

@Trott Trott Jul 25, 2017

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: "examples" (plural) but there appears to be only one example provided

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@Trott

Trott commented Jul 25, 2017

Copy link
Copy Markdown
Member

Can we link to a separate doc rather than putting the text right in the README? (Maybe the doc can even live in the security-wg repl?)

not-an-aardvark reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sam-github

sam-github commented Jul 25, 2017

Copy link
Copy Markdown
Contributor Author

This is an attempt to clarify what kinds of issues will or will not be considered "security vulnerabilities" by the Security Response Team. I lifted much of the text from https://www.python.org/news/security/, because Node.js is not a Web Browser, it does not allow (natively) remote code execution, so has a different security model from Browsers, which has occaisonally created confusion.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Trott
Trott reviewed Jul 25, 2017
View reviewed changes
Comment thread README.md Outdated

@Trott Trott Jul 25, 2017 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Consider changing worth reporting here and below to something else? If it's a bug, it's worth reporting. It's just a question of whether it's a security issue or whether the bug is in Node.js itself or end-user code.

Maybe change this entire sentence to:

It can be difficult to determine if an issue is a valid security issue or not.

Then change any attack worth reporting via the security address in the next sentence to a valid security issue?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@sam-github sam-github Jul 25, 2017

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clarified

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@sam-github

sam-github commented Jul 25, 2017

Copy link
Copy Markdown
Contributor Author

@Trott we can spread our docs as thin as we like, through multiple github repos (nodejs/node, nodejs/LTS, nodejs/security-wg), and through various files, and wikis, but I don't find that helpful.

This is the point at which people are told where to report security issues, its the point they should be told what to report as well, IMO.

There is no current place in the security-wg repo that this information fits. It doesn't have any relationship to any other info in the README (https://github.com/nodejs/security-wg/blob/master/README.md), and I could just dump the text in a standalone .md file and link to it, but that seems a bit odd to me.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Trott
Trott reviewed Jul 25, 2017
View reviewed changes
Comment thread README.md Outdated

@Trott Trott Jul 25, 2017

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: and -> or?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@sam-github sam-github Jul 25, 2017

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think its accurate as is. Its a security issue if it affect the app OR the system the app is on (either one). Its not necessary that it effect the app AND the system.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@Trott Trott Jul 25, 2017

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sam-github I think you misread me. I'm talking about changing and to or, not the other way around. Right now, it says it's a valid security issue if it affects "the confidentiality, integrity, and availability of the Node.js application...". I think it should say `or availability of the Node.js application...". Like, if you can affect availability, that's a security issue even if it doesn't also affect confidentiality.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@sam-github sam-github Jul 25, 2017

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did misreadh, changed.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
drifkin
drifkin reviewed Jul 25, 2017
View reviewed changes
Comment thread README.md Outdated

@drifkin drifkin Jul 25, 2017

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it may be worth defining "attacker" here. What abilities does the attacker have? (e.g., do they interface with the system over HTTP, fs, etc.?)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@sam-github sam-github Jul 25, 2017

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you suggest some wording? Couldn't an attacker could have any capability, where the important thing is they are attempting to do something they are not intended to be able to do? That is, that they are attempting to escalate privilege? Of course, as the capability of executing arbitrary js code is already the highest privelege, escalation from there is not possible.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@drifkin drifkin Jul 25, 2017

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, yes, that makes sense. I think what threw me off is the whole no-escalating-above-arbitrary-js-code is explained in the example. I think it might help clarify to pull it up to this paragraph.

Given that the definition is fairly abstract, it would also be helpful to have a few examples of attackers, along with escalations that would be considered security vulnerabilities. I imagine that we're often thinking of attackers as HTTP clients that try to escalate above being able to send HTTP messages to the system. It's clear that being able to remotely execute code from an HTTP request is an escalation that would be considered a security vulnerability, but are there examples of more subtle escalations that would count?

Showing examples of particular issues that were in fact considered security issues would also help. Do we have examples we can use? I think nodejs/security-wg#17 will help us get good examples: having a private disclosure process that retroactively turns public once the issue is resolved will make the boundaries more clear.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@sam-github

sam-github commented Jul 31, 2017

Copy link
Copy Markdown
Contributor Author

I'm going to go through the sec release history and try to find some good examples, as in https://www.python.org/news/security/, that flesh out the kinds of things Node does and does not consider a vulnerability.

drifkin reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

mhdawson
mhdawson reviewed Aug 1, 2017
View reviewed changes
Comment thread README.md Outdated

@mhdawson mhdawson Aug 1, 2017

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd agree more examples, including some positive examples would be useful.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@sam-github
sam-github force-pushed the define-vulnerability branch from 613b0b3 to 0a0d060 Compare August 1, 2017 14:24
@sam-github

sam-github commented Aug 1, 2017 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor Author

possible examples:

8.0.0

  • new Buffer(num) and Buffer(num) will zero-fill new Buffer instances
    [7eb1b4658e]
    #12141.

  • buffer: Zero-fill excess bytes in new Buffer objects created with
    Buffer.concat() while providing a totalLength parameter that exceeds the
    total length of the original Buffer objects being concatenated. (Сковорода
    Никита Андреевич)
    ref: https://github.com/nodejs/node-private/pull/64
    ref: 8fb8c46303

  • url.resolve may transfer the auth portion of the url when resolving between two full hosts, see #1435.

4.8.3

  • tls:
    • fix rare segmentation faults when using TLS
      • (Trevor Norris) #11947
      • (Ben Noordhuis) #11898
      • (jBarz) #11776

nodejs/security-wg#35 (comment)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sam-github
sam-github force-pushed the define-vulnerability branch 2 times, most recently from e646d3d to e46d161 Compare August 22, 2017 17:11
jasnell
jasnell reviewed Aug 24, 2017
View reviewed changes
Comment thread README.md Outdated

@jasnell jasnell Aug 24, 2017

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/There is not any hard and fast rule/There are no hard and fast rules

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
jasnell
jasnell reviewed Aug 24, 2017
View reviewed changes
Comment thread README.md Outdated

@jasnell jasnell Aug 24, 2017

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd strike via the security address

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
jasnell
jasnell reviewed Aug 24, 2017
View reviewed changes
Comment thread README.md Outdated

@jasnell jasnell Aug 24, 2017

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/affect/compromise

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
jasnell
jasnell reviewed Aug 24, 2017
View reviewed changes
Comment thread README.md Outdated

@jasnell jasnell Aug 24, 2017

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "for which the attacker does not already have the capability" is a bit odd. Perhaps just strike that part?

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@sam-github sam-github Aug 24, 2017

Copy link
Copy Markdown
Contributor Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you have the right to run arbitrary js code, calling process.exit() isn't a vuln. If you have the mysql credentials, being able to dump the DB isn't a vuln. If you need shell access to execute an exploit that gives you shell access, its not a vuln. I think this is important, a vulnerability allows capability escalation, if you already have the capability, it isn't a vuln.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@jasnell

jasnell commented Aug 24, 2017

Copy link
Copy Markdown
Member

I think I'd much prefer to see this in a doc/guides document rather than the readme

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sam-github

sam-github commented Aug 24, 2017

Copy link
Copy Markdown
Contributor Author

I think I'd much prefer to see this in a doc/guides document rather than the readme

As I said:

This is the point at which people are told where to report security issues, its the point they should be told what to report as well, IMO.

But its more important that it is doced and easily findable from the place the security reporting email address is descibed, so I'll move it.

Can you give me an explicit location and title?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@sam-github

sam-github commented Aug 30, 2017

Copy link
Copy Markdown
Contributor Author

@jasnell, gentle ping, I know you are juggling eggs ATM

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

gibfahn
gibfahn approved these changes Aug 31, 2017
View reviewed changes
mhdawson
mhdawson approved these changes Sep 7, 2017
View reviewed changes

@mhdawson mhdawson left a comment

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@sam-github
sam-github force-pushed the define-vulnerability branch 2 times, most recently from aa357de to cca378b Compare September 7, 2017 20:43
@sam-github
doc: describe what security issues are
7540821
PR-URL: nodejs#14485
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
@sam-github
sam-github force-pushed the define-vulnerability branch from cca378b to 7540821 Compare September 7, 2017 20:44
@sam-github
sam-github merged commit 7540821 into nodejs:master Sep 7, 2017
@sam-github
sam-github deleted the define-vulnerability branch September 7, 2017 20:50
MylesBorins pushed a commit that referenced this pull request Sep 10, 2017
@sam-github @MylesBorins
doc: describe what security issues are
ca3c4a0
PR-URL: #14485
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
@MylesBorins MylesBorins mentioned this pull request Sep 10, 2017
v8.5.0 proposal #15308
Merged
MylesBorins pushed a commit that referenced this pull request Sep 11, 2017
@sam-github @MylesBorins
doc: describe what security issues are
d66a4eb
PR-URL: #14485
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
MylesBorins pushed a commit that referenced this pull request Sep 12, 2017
@sam-github @MylesBorins
doc: describe what security issues are
ea86cb5
PR-URL: #14485
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
addaleax pushed a commit to addaleax/node that referenced this pull request Sep 13, 2017
@sam-github @addaleax
doc: describe what security issues are
c6f3374
PR-URL: nodejs#14485
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
MylesBorins pushed a commit that referenced this pull request Sep 20, 2017
@sam-github @MylesBorins
doc: describe what security issues are
17d0cf5
PR-URL: #14485
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
@MylesBorins MylesBorins added the land-on-v6.x label Sep 20, 2017
@MylesBorins MylesBorins mentioned this pull request Sep 20, 2017
v6.11.4 proposal #15506
Merged
MylesBorins pushed a commit that referenced this pull request Sep 21, 2017
@sam-github @MylesBorins
doc: describe what security issues are
7dcce65
PR-URL: #14485
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
MylesBorins pushed a commit that referenced this pull request Sep 26, 2017
@sam-github @MylesBorins
doc: describe what security issues are
33fdbb5
PR-URL: #14485
Reviewed-By: Gibson Fahnestock <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
@sam-github sam-github mentioned this pull request Oct 10, 2017
Threat model nodejs/security-wg#51
Closed
@tniessen tniessen mentioned this pull request Apr 13, 2018
doc: fix typo in README #20011
Closed
2 tasks done
tniessen added a commit that referenced this pull request Apr 13, 2018
@tniessen
doc: fix typo in README
ba9dc74
PR-URL: #20011
Refs: #14485
Reviewed-By: Ruben Bridgewater <[email protected]>
Reviewed-By: Vse Mozhet Byt <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
jasnell pushed a commit that referenced this pull request Apr 16, 2018
@tniessen @jasnell
doc: fix typo in README
15e8bdf
PR-URL: #20011
Refs: #14485
Reviewed-By: Ruben Bridgewater <[email protected]>
Reviewed-By: Vse Mozhet Byt <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
BridgeAR pushed a commit to BridgeAR/node that referenced this pull request May 1, 2018
@tniessen @BridgeAR
doc: fix typo in README
d2c3fef
PR-URL: nodejs#20011
Refs: nodejs#14485
Reviewed-By: Ruben Bridgewater <[email protected]>
Reviewed-By: Vse Mozhet Byt <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@jasnell jasnell jasnell left review comments
@Trott Trott Trott left review comments
+3 more reviewers
@drifkin drifkin drifkin left review comments
@mhdawson mhdawson mhdawson approved these changes
@gibfahn gibfahn gibfahn approved these changes
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

doc Issues and PRs related to Node.js documentation.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

8 participants

@sam-github @Trott @jasnell @drifkin @mhdawson @gibfahn @MylesBorins @nodejs-github-bot
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.