Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(Microsoft SQL Node): Prevent SQL injection #7467

Merged
merged 11 commits into from
Oct 24, 2023

Conversation

michael-radency
Copy link
Contributor

Github issue / Community forum post (link here to close automatically):

@michael-radency michael-radency added n8n team Authored by the n8n team node/issue Issue with a node labels Oct 19, 2023
@github-actions
Copy link
Contributor

Great PR! Please pay attention to the following items before merging:

Files matching packages/**:

  • If fixing bug, added test to cover scenario.
  • If addressing forum or Github issue, added link to description.

Files matching packages/**/*.ts:

  • Added unit tests to cover new or updated functionality.

Files matching packages/nodes-base/nodes/**:

  • Added workflow tests for nodes if possible.

Make sure to check off this list before asking for review.

Copy link
Member

@netroy netroy left a comment

Choose a reason for hiding this comment

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

Can we please add unit tests with mocked mssql module to assert that the calls to .input and .query are what we expect them to be?

@codecov
Copy link

codecov bot commented Oct 19, 2023

Codecov Report

Attention: 6 lines in your changes are missing coverage. Please review.

Comparison is base (78243ed) 33.57% compared to head (30b59ee) 33.60%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #7467      +/-   ##
==========================================
+ Coverage   33.57%   33.60%   +0.03%     
==========================================
  Files        3399     3399              
  Lines      207458   207465       +7     
  Branches    22426    22415      -11     
==========================================
+ Hits        69653    69725      +72     
+ Misses     136675   136607      -68     
- Partials     1130     1133       +3     
Files Coverage Δ
...nodes-base/nodes/Microsoft/Sql/GenericFunctions.ts 80.95% <100.00%> (+80.95%) ⬆️
...odes-base/nodes/Microsoft/Sql/MicrosoftSql.node.ts 0.00% <0.00%> (ø)

... and 5 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Member

@netroy netroy left a comment

Choose a reason for hiding this comment

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

Haven't actually tested this, because I don't have mssql setup.
but, besides the one comment, LGTM.

packages/nodes-base/nodes/Microsoft/Sql/test/utils.test.ts Outdated Show resolved Hide resolved
@michael-radency
Copy link
Contributor Author

Haven't actually tested this, because I don't have mssql setup. but, besides the one comment, LGTM.

setup is rather easy with docker, here's is guide:
https://learn.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker?view=sql-server-ver16&pivots=cs1-bash

Copy link
Member

@netroy netroy left a comment

Choose a reason for hiding this comment

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

👍🏽

@cypress
Copy link

cypress bot commented Oct 24, 2023

Passing run #2559 ↗︎

0 258 0 0 Flakiness 0

Details:

🌳 🖥️ browsers:node18.12.0-chrome107 🤖 michael-radency 🗃️ e2e/*
Project: n8n Commit: 30b59ee515
Status: Passed Duration: 09:00 💡
Started: Oct 24, 2023 8:56 AM Ended: Oct 24, 2023 9:05 AM

Review all test suite changes for PR #7467 ↗︎

@github-actions
Copy link
Contributor

✅ All Cypress E2E specs passed

@michael-radency michael-radency merged commit a739245 into master Oct 24, 2023
56 checks passed
@michael-radency michael-radency deleted the node-836-possible-sql-injection branch October 24, 2023 09:36
@github-actions github-actions bot mentioned this pull request Oct 25, 2023
netroy added a commit that referenced this pull request Oct 25, 2023
# [1.13.0](https://github.com/n8n-io/n8n/compare/[email protected]@1.13.0)
(2023-10-25)


### Bug Fixes

* **core:** Do not return `inviteAcceptUrl` in response if email was
sent ([#7465](#7465))
([55c6a1b](55c6a1b))
* **core:** Ensure nodes post-processors run in the correct order
([#7500](#7500))
([6f45298](6f45298))
* **core:** Fix `frontend.settings` external hook execution
([#7496](#7496))
([774fe20](774fe20))
* **core:** Handle gzip and deflate compressed request payloads
([#7461](#7461))
([83762e0](83762e0))
* **core:** Reduce logging overhead for levels that do not output
([#7479](#7479))
([76c0481](76c0481))
* **Customer.io Node:** Fix api endpoint when using EU region
([#7485](#7485))
([519680c](519680c))
* **editor:** Allow importing the same workflow multiple times
([#7458](#7458))
([3c0a166](3c0a166))
* **editor:** Fix canvas selection breaking after interacting with node
actions ([#7466](#7466))
([bc47365](bc47365))
* **editor:** Fix connections disappearing after reactivating canvas and
renaming a node ([#7483](#7483))
([450e0cc](450e0cc))
* **Google Sheets Node:** Append or update runs forever when without
column headers ([#7463](#7463))
([ab6a9bb](ab6a9bb))
* **Microsoft SQL Node:** Prevent SQL injection
([#7467](#7467))
([a739245](a739245))
* **MQTT Trigger Node:** Fix node causing a start up hang when active
([#7498](#7498))
([baecb93](baecb93))
* **MySQL Node:** Resolve expressions in v1
([#7464](#7464))
([5c46bb0](5c46bb0))
* **Redis Node:** Fix adding sets data types
([#7444](#7444))
([4e66023](4e66023))
* **Spreadsheet File Node:** Fix include empty cells not working with v2
([#7505](#7505))
([05e6f2a](05e6f2a))


### Features

* **core:** Add support for oauth based service accounts with UM SMTP
([#7311](#7311))
([647372b](647372b))
* **editor:** Add PH tracking to event
([#7511](#7511))
([c47d27d](c47d27d))
* **Facebook Lead Ads Trigger Node:** Add Facebook Lead Ads Trigger Node
([#7113](#7113))
([ac814a9](ac814a9))
* **Ghost Node:** Add support for lexical format
([#7488](#7488))
([7b1973c](7b1973c))
* **RSS Feed Trigger Node:** Add RSS feed trigger node
([#7386](#7386))
([689360e](689360e))

Co-authored-by: netroy <[email protected]>
MiloradFilipovic added a commit that referenced this pull request Oct 25, 2023
* master: (30 commits)
  🚀 Release 1.14.0 (#7514)
  ci: Fix oclif manifest generation
  feat(Switch Node): Add support for infinite Switch outputs (#7499)
  🚀 Release 1.13.0 (#7512)
  fix(core): Ensure nodes post-processors run in the correct order (#7500)
  feat(editor): Add PH tracking to event (#7511)
  fix(core): Fix workflow activation with history and workflow history for EE (no-changelog) (#7508)
  refactor(core): Make executions pruning more resilient (#7480)
  fix(Spreadsheet File Node): Fix include empty cells not working with v2 (#7505)
  fix(core): Create instance settings directory recursively (no-changelog) (#7506)
  fix(Microsoft SQL Node): Prevent SQL injection (#7467)
  refactor(core): Make pruning via lifecycle configuration in S3 mode mandatory (#7482)
  fix(core): Always derive `instanceId` from the encryption key (no-changlog) (#7501)
  fix(MQTT Trigger Node): Fix node causing a start up hang when active (#7498)
  feat: Collect usage metrics on license renewal (no-changelog) (#7486)
  fix(core): Fix `frontend.settings` external hook execution (#7496)
  fix(Redis Node): Fix adding sets data types (#7444)
  fix: Save new version of the workflow instead of the previous (no-changelog) (#7428)
  refactor(core): Abstract away InstanceSettings and `encryptionKey` into injectable services (no-changelog) (#7471)
  fix(Customer.io Node): Fix api endpoint when using EU region (#7485)
  ...
@janober
Copy link
Member

janober commented Oct 25, 2023

Got released with [email protected]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
n8n team Authored by the n8n team node/issue Issue with a node Released
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants