Skip to content

JavaScript: Add model of JSON parsers#10

Merged
xiemaisi merged 3 commits into
github:masterfrom
asger-semmle:json-parsers
Aug 6, 2018
Merged

JavaScript: Add model of JSON parsers#10
xiemaisi merged 3 commits into
github:masterfrom
asger-semmle:json-parsers

Conversation

@asger-semmle

Copy link
Copy Markdown
Contributor

Adds JsonParserCall which models a call to a JSON parser.

  • I've deprecated the AST-based JsonParseCall to avoid confusion.
  • The default taint step through JSON.parse has been updated to include JsonParserCall.
  • The NosqlInjection query used two-pass taint tracking to identify user-controlled JSON.parse calls, and then use those as sources. This was redundant with the taint step through JSON.parse, however. This has been removed, instead relying on the standard taint step. I've added a test to make sure it still works. In theory, some results may disappear since the two-step solution technically allowed for mismatched call/returns.

The evaluation indicates no changes; maybe a slight speed-up even due to NosqlInjection. The speed-up could be covering up a slow-down elsewhere, but looking over the per-query results there doesn't seem to be any glaring slow-downs. No new results were flagged.

@ghost

ghost commented Aug 3, 2018

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@asger-semmle

Copy link
Copy Markdown
Contributor Author

@xiemaisi to answer your question from before, I've run a full evaluation. I've included the links this time.

@xiemaisi xiemaisi self-requested a review August 3, 2018 15:45

@xiemaisi xiemaisi left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

LGTM.

@xiemaisi xiemaisi merged commit d91218e into github:master Aug 6, 2018
nickrolfe pushed a commit to nickrolfe/codeql that referenced this pull request Aug 6, 2018
…-candidates

JavaScript: support optimistic tracking of arrow route handlers
aibaars added a commit that referenced this pull request Oct 14, 2021
DB scheme: convert uppercase to lowercase + underscore
smowton added a commit to smowton/codeql that referenced this pull request Oct 28, 2021
erik-krogh referenced this pull request in erik-krogh/ql Dec 15, 2021
erik-krogh referenced this pull request in erik-krogh/ql Dec 15, 2021
dbartol pushed a commit that referenced this pull request Dec 18, 2024
feat(field-flow): Refactor flow through job outputs
nicolaswill added a commit that referenced this pull request May 12, 2025
tausbn added a commit that referenced this pull request May 1, 2026
#8: Reject * after non-capture template groups with a compile error.
Previously (foo (bar)*) silently dropped the *, behaving like (bar).

#9: Verify inner token streams are exhausted after parsing query nodes.
Unconsumed tokens inside a parenthesized group now produce a compile
error. Fixed a test using the old redundant (pattern)* syntax inside
a field*: group.

#10: Use ast.get_root() instead of hardcoded 0 for the root node id
in apply_rules calls.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants