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

Flowchart subgraph - too many nodes results in a node not rendered under it's subgraph section #5299

Open
conan-chiles opened this issue Feb 18, 2024 · 1 comment
Labels
Status: Triage Needs to be verified, categorized, etc Type: Bug / Error Something isn't working or is incorrect

Comments

@conan-chiles
Copy link

Description

hi,
There seems to be a bug with flowchart and subgraphs, if too many nodes exist, results in a node expected to be under a subgraph rendered outside it's expected subgraph

any questions, please let me know, thanks

Steps to reproduce

example of a diagram with one too many nodes

keeping an eye on the node Scan_with_CPU["Scan with CPU"]
should be under the subgraph Sensor_Visibility

for context, noticed while mapping out dependencies for some settings of an application

graph LR
	subgraph Behavior_based_Prevention
		Credential_Dumping["Credential Dumping"]
		NULL_Page_Allocation["NULL Page Allocation"]
		Heap_Spray_Preallocation["Heap Spray Preallocation"]
		SEH_Overwrite_Protection["SEH Overwrite Protection"]
		Code_Injection["Code Injection"]
		Volume_Shadow_Copy_Audit["Volume Shadow Copy - Audit"]
		Force_ASLR["Force ASLR"]
		Volume_Shadow_Copy_Protect["Volume Shadow Copy - Protect"]
		Force_DEP["Force DEP"]
	end
	subgraph Malware_Protection
		Suspicious_Scripts_and_Commands["Suspicious Scripts and Commands"]
		Vulnerable_Driver_Protection["Vulnerable Driver Protection"]
		Driver_Load_Prevention["Driver Load Prevention"]
	end
	subgraph Next_Gen_Antivirus
		Detect_on_Write["Detect on Write"]
		Microsoft_Office_File_Malicious_Macro_Removal["Microsoft Office File Malicious Macro Removal"]
		Sensor_Anti_malware_Prevention["Sensor Anti-malware - Prevention"]
		Quarantine_on_Write["Quarantine on Write"]
		Quarantine_on_Removable_Media["Quarantine on Removable Media"]
		Quarantine_Security_Center_Registration["Quarantine & Security Center Registration"]
		Sensor_Anti_malware_Detection["Sensor Anti-malware - Detection"]
	end
	subgraph Sensor_Visibility
		Scan_with_CPU["Scan with CPU"]
		Additional_User_Mode_Data_AUMD_["Additional User Mode Data (AUMD)"]
		BIOS_Deep_Visibility["BIOS Deep Visibility"]
		Engine_Full_Visibility_["Engine (Full Visibility)"]
		Redact_HTTP_Detections_Details["Redact HTTP Detections Details"]
		Extended_User_Mode_Data_XUMD_["Extended User Mode Data (XUMD)"]
		HTTP_Detections["HTTP Detections"]
		Script_Based_Execution_Monitoring["Script-Based Execution Monitoring"]
		Memory_Scanning["Memory Scanning"]
		Hardware_Enhanced_Exploit_Detection["Hardware-Enhanced Exploit Detection"]
		Interpreter_Only["Interpreter-Only"]
	end	

	Microsoft_Office_File_Malicious_Macro_Removal --> Quarantine_on_Write	

	Suspicious_Scripts_and_Commands --> Interpreter_Only
	Suspicious_Scripts_and_Commands --> Script_Based_Execution_Monitoring
	
	Suspicious_Scripts_and_Commands --> if_ARM64_req_Win11

	Scan_with_CPU --> Memory_Scanning
	Scan_with_CPU --> Additional_User_Mode_Data_AUMD_
	Scan_with_CPU --> Intel_CPU

	Credential_Dumping --> Additional_User_Mode_Data_AUMD_

	NULL_Page_Allocation --> Additional_User_Mode_Data_AUMD_
	
	Quarantine_on_Write --> Detect_on_Write

	Vulnerable_Driver_Protection --> Driver_Load_Prevention
	
	BIOS_Deep_Visibility --> physical_host	

	Heap_Spray_Preallocation --> Additional_User_Mode_Data_AUMD_	

	SEH_Overwrite_Protection --> Additional_User_Mode_Data_AUMD_	

	Redact_HTTP_Detections_Details --> not_windows_server	

	Code_Injection --> Additional_User_Mode_Data_AUMD_

	Quarantine_on_Removable_Media --> Quarantine_Security_Center_Registration

	HTTP_Detections --> not_windows_server

	Force_ASLR --> Additional_User_Mode_Data_AUMD_

	Volume_Shadow_Copy_Protect --> Volume_Shadow_Copy_Audit

	Force_DEP --> Additional_User_Mode_Data_AUMD_

	Script_Based_Execution_Monitoring --> if_ARM64_req_Win11
	Script_Based_Execution_Monitoring --> Quarantine_Security_Center_Registration

	Memory_Scanning --> physical_host
	Memory_Scanning --> Intel_CPU_SkyLake_or_later

	Detect_on_Write --> x86_64
	Sensor_Anti_malware_Prevention --> x86_64
	Suspicious_Scripts_and_Commands --> x86_64
	NULL_Page_Allocation --> x86_64
	Quarantine_on_Write --> x86_64
	BIOS_Deep_Visibility --> x86_64
	Engine_Full_Visibility_ --> x86_64
	Heap_Spray_Preallocation --> x86_64
	SEH_Overwrite_Protection --> x86_64

same diagram with one less node

removed SEH_Overwrite_Protection --> x86_64
Scan_with_CPU["Scan with CPU"] is now under the subgraph Sensor_Visibility

graph LR
	subgraph Behavior_based_Prevention
		Credential_Dumping["Credential Dumping"]
		NULL_Page_Allocation["NULL Page Allocation"]
		Heap_Spray_Preallocation["Heap Spray Preallocation"]
		SEH_Overwrite_Protection["SEH Overwrite Protection"]
		Code_Injection["Code Injection"]
		Volume_Shadow_Copy_Audit["Volume Shadow Copy - Audit"]
		Force_ASLR["Force ASLR"]
		Volume_Shadow_Copy_Protect["Volume Shadow Copy - Protect"]
		Force_DEP["Force DEP"]
	end
	subgraph Malware_Protection
		Suspicious_Scripts_and_Commands["Suspicious Scripts and Commands"]
		Vulnerable_Driver_Protection["Vulnerable Driver Protection"]
		Driver_Load_Prevention["Driver Load Prevention"]
	end
	subgraph Next_Gen_Antivirus
		Detect_on_Write["Detect on Write"]
		Microsoft_Office_File_Malicious_Macro_Removal["Microsoft Office File Malicious Macro Removal"]
		Sensor_Anti_malware_Prevention["Sensor Anti-malware - Prevention"]
		Quarantine_on_Write["Quarantine on Write"]
		Quarantine_on_Removable_Media["Quarantine on Removable Media"]
		Quarantine_Security_Center_Registration["Quarantine & Security Center Registration"]
		Sensor_Anti_malware_Detection["Sensor Anti-malware - Detection"]
	end
	subgraph Sensor_Visibility
		Scan_with_CPU["Scan with CPU"]
		Additional_User_Mode_Data_AUMD_["Additional User Mode Data (AUMD)"]
		BIOS_Deep_Visibility["BIOS Deep Visibility"]
		Engine_Full_Visibility_["Engine (Full Visibility)"]
		Redact_HTTP_Detections_Details["Redact HTTP Detections Details"]
		Extended_User_Mode_Data_XUMD_["Extended User Mode Data (XUMD)"]
		HTTP_Detections["HTTP Detections"]
		Script_Based_Execution_Monitoring["Script-Based Execution Monitoring"]
		Memory_Scanning["Memory Scanning"]
		Hardware_Enhanced_Exploit_Detection["Hardware-Enhanced Exploit Detection"]
		Interpreter_Only["Interpreter-Only"]
	end	

	Microsoft_Office_File_Malicious_Macro_Removal --> Quarantine_on_Write	

	Suspicious_Scripts_and_Commands --> Interpreter_Only
	Suspicious_Scripts_and_Commands --> Script_Based_Execution_Monitoring
	
	Suspicious_Scripts_and_Commands --> if_ARM64_req_Win11

	Scan_with_CPU --> Memory_Scanning
	Scan_with_CPU --> Additional_User_Mode_Data_AUMD_
	Scan_with_CPU --> Intel_CPU

	Credential_Dumping --> Additional_User_Mode_Data_AUMD_

	NULL_Page_Allocation --> Additional_User_Mode_Data_AUMD_
	
	Quarantine_on_Write --> Detect_on_Write

	Vulnerable_Driver_Protection --> Driver_Load_Prevention
	
	BIOS_Deep_Visibility --> physical_host	

	Heap_Spray_Preallocation --> Additional_User_Mode_Data_AUMD_	

	SEH_Overwrite_Protection --> Additional_User_Mode_Data_AUMD_	

	Redact_HTTP_Detections_Details --> not_windows_server	

	Code_Injection --> Additional_User_Mode_Data_AUMD_

	Quarantine_on_Removable_Media --> Quarantine_Security_Center_Registration

	HTTP_Detections --> not_windows_server

	Force_ASLR --> Additional_User_Mode_Data_AUMD_

	Volume_Shadow_Copy_Protect --> Volume_Shadow_Copy_Audit

	Force_DEP --> Additional_User_Mode_Data_AUMD_

	Script_Based_Execution_Monitoring --> if_ARM64_req_Win11
	Script_Based_Execution_Monitoring --> Quarantine_Security_Center_Registration

	Memory_Scanning --> physical_host
	Memory_Scanning --> Intel_CPU_SkyLake_or_later

	Detect_on_Write --> x86_64
	Sensor_Anti_malware_Prevention --> x86_64
	Suspicious_Scripts_and_Commands --> x86_64
	NULL_Page_Allocation --> x86_64
	Quarantine_on_Write --> x86_64
	BIOS_Deep_Visibility --> x86_64
	Engine_Full_Visibility_ --> x86_64
	Heap_Spray_Preallocation --> x86_64

Screenshots

with one too many
image

with one less
image

Code Sample

with one too many

https://mermaid-js.github.io/mermaid-live-editor/edit/#pako:eNqVV9tu2zgQ_ZWBHhZdoH4oUARFHhZwYqcJYDdZu2kLrBYEIzExNzKppagkRtF_7wxJUbItOU6BotbMOXPnkP2ZZDoXyWnyYHi5gtkiVamt6jv_eSZW_Elqw-54JXJ2Y8STUFZqRajUnhuR0zcv2KRel1I9_JMmrRCCME3-9fgvt7MZu-EPgo2LQmecLCGDxEBiaMWRcyl4yZal4Rtyz7s8UoFTwZYqcpfTS3b9JMyzkVYgXVuRBS6qIKqgVUXuOZaFXan_IoMEEAUR900X9Vqw5Yrn-pmd63LDxnUuLTK8CrwKSAUjcMrIvtAmw2osZwvEuw-gj0PWQ6xD9oN6x8NkehMd4O-gFSrfavecF8_cdCsV6lhXpcykriu2zIwsbcW4yjGc9Rr_raicEQEBAaiBBtHmUxdKGH5XYEhGYv23u9Kqwav7OhOIM827E4nsQCEFdEa1P9cv4sWyz0KxMaKepKmrYF2QP6YV-06jQWadBLQCJ4lxzGVmdKXvLbu-v5dY5AuJaWENQ6nmHPVsIdb6iRdoJ-LB44HwEPHg8BDw7QwLVeEBpCjZOvank7UHAAFGAeDGYCf_1P5dc8NRpEQ3u1a6n-E2w0dGrZuLXPI9btSD0_dZWYqsRg8bdo6xYQ8X4kFW1jQHumPvD2iw4LHQxR6sju_XoeJExMBsBKvfZCXvZIExBGcZV-xZ2hU7v7kl4_gN9A34HUMa53jA0TYuxdsKc5zTIplwy9n4dj5hyGsRQAggBBAC3hHkz2jq7Op6iemIshMK8kkMJIZOhA1nqh6o0hd1UXRY5NZr4B2pOszW3ULkHEf_8uvXm7aIFf3ksqBT7gFAgLaGFQRAG8ILVRTvi538f4T8G_1e9j-2st-Jgxb-tuN2CtzKYWfukpq-4OCQHj0rabXx15LHjBwGIgZaTHuucY7NhlF3led6CTSSNkJucjdyU7XiKnPOy0JLuzWDDWrUoCCg9uYwtVc06qURdDiuVUHd7ohGJOrMrE3dgn7TIoLR6C_oWQWNsVd2vaPvRnks79U-uSIcaUzes_FifvKRGfE_-y7Vhw8hge4pdcidhvaDXjm2_SQqREFf3vX-e-hI06r_bXRsYPS3p6WOvnOfeWeHrmHP6r1jG199e8nRytWmkhlGutKVbSZq6AV3VHbNVA685N5i4_B6c5aUtthghc-piqEldNiQt5-Dx7f14BW6exYPXY-hltvBDwXtsO3b8vhwh9-bzsbQY7frEJ-Xx_t7dSMMH_UjuW8q786m6JnpAVBcBGz5uJnxR-y2YQW3vheAf3bOoWO9fDphJx-9_vA7bx9-xIbs4gfXSxc0tEO6mMGz3wUNPEL2cAdXw1a6h86_Bybvk7Uway5z_N_sT6KliV2JNT5nT_Fnzs1jmqTqF-LqMsfWTHOak-T0nheVeJ_w2urlRmVR4FETyfFRuA7SX78BcN2aFw


with one less

https://mermaid-js.github.io/mermaid-live-editor/edit/#pako:eNqVV1Fv2zgM_iuEHw47YHkYMBRDHw5Im3QtkKy9ZN0GnA-CaquNro7kk-W2wbD_PlKSZSex07RAUYv8PpIiKUr9mWQ6F8lp8mB4uYLZIlWpreo7vzwTK_4ktWF3vBI5uzHiSSgrtSJUas-NyGnNCzap16VUD_-kSSuEIEyTfz3-y-1sxm74g2DjotAZJ0vIIDGQGFpx5FwKXrJlafiG3PMuj1TgVLClitzl9JJdPwnzbKQVSNdWZIGLKogqaFWRe45pYVfqv8ggAURBxH3TRb0WbLniuX5m57rcsHGdS4sMrwKvAlLBCJwysi-0yTAby9kC8W4BtDhkPcQ6ZD-odzxMpjfRAX4HrVD5VrnnvHjmppupkMe6KmUmdV2xZWZkaSvGVY7hrNf4t6J0RgQEBKAGGkS7n7pQwvC7AkMyEvO_XZVWDV7dV5lAnGne7UhkBwopoNOq_Xv9Il4s-ywUGyPqSZq6CtYF-WNase_UGmTWSUArcJIYx1xmRlf63rLr-3uJSb6QuC3MYUjVnKOeLcRaP_EC7UQ8eDwQHiIeHB4Cvu1hoSo8gBQlW8f6dHbtAUCAUQC4NtjZf2r_rrnhKFKiu7tWur_DbYaPjEo3F7nke9yoB6fvs7IUWY0eNuwcY8MaLsSDrKxpDnTH3h_QYMFjoYs9mB1fr0PJiYiB3ghWv8lK3skCYwjOMq7Ys7Qrdn5zS8ZxDbQGXMeQxjkecLSNQ_G2wj3OaZBMuOVsfDufMOS1CCAEEAIIAe8I8mc0dXZ1vcTtiLITCvJJDCSGToQNZ6oeKNMXdVF0WOTWa-AdqTrM1t1C5Bxb__Lr15s2iRV9clnQKfcAIECbwwoCoA3hhTKK98XO_n-E_Tf6vd3_2Nr9Thw08Lcdt13gRg47c5fU9AUbh_ToWUmrjb-WPGbkMBAx0GLac419bDaMqqs810ugkbQRcpO7lpuqFVeZc14WWtqtHmxQowYFAbXXh6m9olYvjaDDca0KqnZHNCJRp2dt6gb0mwYRjEZ_Qc8oaIy9MusdfTfKY3mv1skl4Uhj8p6NF_OTj8yI_9l3qT58CBvonlKH3CloP-iVY9tPokQUtPKu999DR5pW_W-jYwOj356SOvrOfeadHbqGPav3jm189c0lRytXm0pmGOlKV7bpqKEX3FG7a7py4CX3FhuHx5uzpLTFAit8TlUMLaHDhrz9HDy-rAev0N2zeOh6DLncDn4oaIdt35bHhzv83nQ2hh67XYf4vDze36sTYfioH8l9U3p3JkVPTw-A4iBgy8fNjD9itQ0ruPW1APzZOYeO9fLphJ189PrD77x9-BETsosfHC9d0NAM6WIGz34XNPAI2cMdHA0emLxP1sKsuczxn9SfREsTuxJrfKWe4mfOzWOapOoX4uoyx4xPcyp_cnrPi0q8T3ht9XKjsijwqInk-NZbB-mv3wqzjLo

Setup

is consistent between the mermaid live preview using both Firefox and Edge, a VS Code Mermaid Preview extension (link below), and in GitHub issues markdown renderer

https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid

Suggested Solutions

No response

Additional Context

No response

@conan-chiles conan-chiles added Status: Triage Needs to be verified, categorized, etc Type: Bug / Error Something isn't working or is incorrect labels Feb 18, 2024
@ArtjomE
Copy link

ArtjomE commented Apr 5, 2024

@conan-chiles here reported issue by me is the same #2291

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Triage Needs to be verified, categorized, etc Type: Bug / Error Something isn't working or is incorrect
Projects
None yet
Development

No branches or pull requests

2 participants