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

[BEEEP] Secure memory #12185

Draft
wants to merge 7 commits into
base: main
Choose a base branch
from
Draft

[BEEEP] Secure memory #12185

wants to merge 7 commits into from

Conversation

coroiu
Copy link
Contributor

@coroiu coroiu commented Nov 29, 2024

🎟️ Tracking

📔 Objective

Proof-of-concept implementation of a "secure memory" storage which is intended to provide:

  • Automatic memory zeroing when array buffers are no longer used
  • Localized memory allocation with the ability to force zeroing of all allocated memory
  • Transparent compatibility with all existing code by extending built-in Uint8Array type

Future versions might implement:

  • OS-based protections for heap/stack memory regions, similar to [PM-5693] Migrate SDK to CryptoService sdk-internal#8
    • This could be implemented using alternative Allocators
  • Other secure types such as SecureString by using SecureArrayBuffer as underlying storage
  • More constrained secure types that don't allow access to the underlying buffer
  • Earlier zeroizing and more granular lifetime control, e.g. by allow developers to explicitly zeroize buffers when no longer needed

📸 Screenshots

⏰ Reminders before review

  • Contributor guidelines followed
  • All formatters and local linters executed and passed
  • Written new unit and / or integration tests where applicable
  • Protected functional changes with optionality (feature flags)
  • Used internationalization (i18n) for all UI strings
  • CI builds passed
  • Communicated to DevOps any deployment requirements
  • Updated any necessary documentation (Confluence, contributing docs) or informed the documentation team

🦮 Reviewer guidelines

  • 👍 (:+1:) or similar for great changes
  • 📝 (:memo:) or ℹ️ (:information_source:) for notes or general info
  • ❓ (:question:) for questions
  • 🤔 (:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion
  • 🎨 (:art:) for suggestions / improvements
  • ❌ (:x:) or ⚠️ (:warning:) for more significant problems or concerns needing attention
  • 🌱 (:seedling:) or ♻️ (:recycle:) for future improvements or indications of technical debt
  • ⛏ (:pick:) for minor or nitpick changes

Copy link
Contributor

Logo
Checkmarx One – Scan Summary & Details92082cca-4f1c-4412-a7ad-fdfa2af9098b

Fixed Issues

Severity Issue Source File / Package
HIGH Client_DOM_XSS /apps/web/src/connectors/redirect.ts: 6
HIGH Client_DOM_XSS /apps/web/src/connectors/redirect.ts: 15
MEDIUM Absolute_Path_Traversal /apps/cli/src/oss-serve-configurator.ts: 287
MEDIUM Absolute_Path_Traversal /apps/cli/src/oss-serve-configurator.ts: 319
MEDIUM Absolute_Path_Traversal /apps/cli/src/oss-serve-configurator.ts: 319
MEDIUM Absolute_Path_Traversal /apps/cli/src/oss-serve-configurator.ts: 287
MEDIUM Angular_Improper_Type_Pipe_Usage /apps/browser/src/autofill/popup/fido2/fido2-use-browser-link-v1.component.html: 1
MEDIUM Angular_Improper_Type_Pipe_Usage /apps/web/src/app/layouts/product-switcher/product-switcher.component.html: 1
MEDIUM Angular_Improper_Type_Pipe_Usage /libs/components/src/navigation/nav-divider.component.html: 1
MEDIUM Angular_Improper_Type_Pipe_Usage /apps/browser/src/autofill/popup/fido2/fido2-use-browser-link.component.html: 1
MEDIUM Client_Privacy_Violation /bitwarden_license/bit-web/src/app/tools/access-intelligence/password-health-members.component.html: 50
MEDIUM Client_Privacy_Violation /bitwarden_license/bit-web/src/app/tools/access-intelligence/password-health-members.component.html: 45
MEDIUM Client_Privacy_Violation /bitwarden_license/bit-web/src/app/tools/access-intelligence/password-health-members.component.html: 50
MEDIUM Client_Privacy_Violation /bitwarden_license/bit-web/src/app/tools/access-intelligence/password-health-members.component.html: 55
MEDIUM Client_Privacy_Violation /libs/tools/generator/components/src/credential-generator-history.component.html: 3
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 502
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 514
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 657
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 684
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 670
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 564
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 580
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 557
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 496
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 645
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 643
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 653
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 656
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 409
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 710
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 644
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 453
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 646
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 209
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 647
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 588
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 436
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 413
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 222
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 548
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 1719
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 1719
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 368
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 368
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 1718
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 2873
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 136
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 1644
MEDIUM Client_Privacy_Violation /apps/browser/src/autofill/background/overlay.background.ts: 2768
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 484
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/vault/app/vault/view.component.html: 457
MEDIUM Client_Privacy_Violation /apps/desktop/src/platform/components/approve-ssh-request.html: 6
MEDIUM Client_Privacy_Violation /apps/web/src/app/vault/individual-vault/view.component.ts: 101
MEDIUM Client_Privacy_Violation /apps/web/src/app/vault/individual-vault/view.component.ts: 101
MEDIUM Client_Privacy_Violation /apps/web/src/app/vault/individual-vault/view.component.ts: 101
MEDIUM Client_Privacy_Violation /apps/web/src/app/vault/individual-vault/view.component.ts: 101
MEDIUM Client_Privacy_Violation /apps/web/src/app/vault/individual-vault/view.component.ts: 76
MEDIUM Client_Privacy_Violation /apps/web/src/app/vault/individual-vault/view.component.ts: 76
MEDIUM Client_Privacy_Violation /apps/web/src/app/vault/individual-vault/view.component.ts: 76
MEDIUM Client_Privacy_Violation

More results are available on AST platform

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.

1 participant