rearshooter Δημοσ. 26 Σεπτεμβρίου 2014 Δημοσ. 26 Σεπτεμβρίου 2014 Σοβαρό Bug, πολύ σοβαρότερο απο το heartbleed γιατί οδηγεί σε πλήρη έλεγχο του μηχανήματος. Αυτά να τα βλέπουν όσοι θεοποιούν το linuχ. Όλα τα λειτουργικά έχουν bugs και κανένα δεν αποτελεί εξαίρεση. Αν ήξερες 5 πράγματα και είχες διαβάσει καμιά συνέντευξη οποιουδήποτε σοβαρού security researcher θα ήξερες οτι η MS έχει κάνει τεράστια πρόοδο στον τομέα της ασφάλειας του λειτουργικού. Αντίθετα η μηλοεταιρία βασίζεται στο τραγικό security by obscurity. πρώτα από όλα το πολύ σοβαρό είναι σχετικό...στο σπίτι δεν παθαίνεις τίποτα δεύτερον εσείς οι παραθυράδες μας βολεύετε έτσι κι αλλιώς δεν σας θέλουμε για ευνόητους λόγους τρίτον τουλάχιστον μην το παίζετε άνετοι και μάγκες γιατί μια απλή συζήτηση σε μσν σκυπε κτλ με έναν λινουξά αρκεί... ο νοών...νοείτω, μάθατε και από κενά ασφαλείας τέταρτον δεν έχουν όλοι bash για στάνταρ κέλυφος και πέμπτον δεν υπάρχει σε όλες τις διανομές υγ τα τυχόν λάθη μαθαίνονται γρήγορα και διορθώνονται γρήγορα κάτι που δεν ισχυει αλλού για παράδειγμα εγώ στο gentoobox μου πριν την αναβάθμιση δεν είχα πρόβλημα επίσης με προκαθορισμένο κέλυφος zsh κτλ κανένα πρόβλημα..μην τρελαίνεστε....
Aztec Δημοσ. 26 Σεπτεμβρίου 2014 Δημοσ. 26 Σεπτεμβρίου 2014 το point μου ήταν πως λόγο της δημοφιλίας του android το linux επωφελείται. δεν είναι πια ενα απομoνωμένο λειτουργικό χωρίς -όπως πολλοί ισχυρίζονταν- μέλλον στους consumer, παρα μόνο σε server και enterprise. Δεν είπα οτι λόγο android ανέβηκε το ποσοστό του desktop linux, αλλά οτι αυξήθηκαν οι devs που ασχολούνται με αυτό (όχι με τα apps, με custom roms κτλ). Αυτό πιστεύω απο αυτά που βλέπω, το ακραία αντίθετο πχ να αυξάνετε η χρήση του android και ο πυρήνας να γίνει deprecated μου φαίνεται απίθανο. αν τώρα πιστεύεις οτι το android δεν βοήθησε καθόλου στο να δουν περισσότεροι developer με εμπορικό μάτι την ενασχόληση τους με τον πηρύνα του linux (bug fixes, features, portability κτλ), δε πρόκειτα να μπω στο debate. Βλέπεις να επωφελείται ; το μόνο που βλέπω ως όφελος ειναι ότι extra μπορεί να γινεται upstream στο kernel tree. Φυσικά και κάποιος ακομα και αυτο μπορει να το θεωρήσει αρνητικό καθώς μιλάμε για μονολιθικό kernel . Αλλα αυτο ειναι μια άλλη συζήτηση. Πάμε τώρα αλλη μια. Απο όταν βγηκε το android τι ουσιαστικο άλλαξε στο gnu/linux . Τι πήρε απο το dalvik Linux aka android ; να σου πω εγώ τίποτα ουσιαστικό . Το android και κάποιο homemade kernel να χρησιμοποιούσε παλι επιτυχία θα είχε. Δεν έχετε καταλάβει ότι ένα λειτουργικό είναι πολλά πράγματα μαζί . Η επιτυχία μάλιστα στο consumer κομμάτι δεν έχει καμια σχέση με αυτο που λέγεται Linux kernel. Ετσι το βλέπω εγώ φυσικά
kfyros Δημοσ. 27 Σεπτεμβρίου 2014 Δημοσ. 27 Σεπτεμβρίου 2014 Χοντρό bug, όχι τόσο για? Client pc's όσο για servers. Κόστος τεράστιο να χρειαστεί να κατεβάσεις ένα Web server με μερικές χιλιάδες sites πάνω για να κάνεις update!! Κι αν έχει ήδη χακαριστει, εκεί να δεις γλέντια!! Μιλάμε για τρελά εκατομύρια κόστη ανά τον κόσμο!! Η τροπή που πήρε το thread με τους fanboys vs haters είναι τραγική once more.
Moderators Gi0 Δημοσ. 27 Σεπτεμβρίου 2014 Moderators Δημοσ. 27 Σεπτεμβρίου 2014 How to patch your vulnerable OS X to latest bash issue: Download source package from: http://opensource.apple.com/tarballs/bash/bash-92.tar.gz Apply the patch below. Open the bash.xcodeproj in Xcode. Compile (you probably want to modify the Xcode project to codesign if you have a certificate). Copy the binary to /bin/bash and /bin/sh. Patches from latest RedHat packages. fg! ----- CUT HERE ------ diff -ur bash-92/bash-3.2/builtins/common.h bash-92-patched/bash-3.2/builtins/common.h --- bash-92/bash-3.2/builtins/common.h 2009-06-12 00:29:43.000000000 +0100 +++ bash-92-patched/bash-3.2/builtins/common.h 2014-09-24 21:46:44.000000000 +0100 @@ -33,6 +33,8 @@ #define SEVAL_RESETLINE 0x010 /* Flags for describe_command, shared between type.def and command.def */ +#define SEVAL_FUNCDEF 0x080 /* only allow function definitions */ +#define SEVAL_ONECMD 0x100 /* only allow a single command */ #define CDESC_ALL 0x001 /* type -a */ #define CDESC_SHORTDESC 0x002 /* command -V */ #define CDESC_REUSABLE 0x004 /* command -v */ diff -ur bash-92/bash-3.2/builtins/evalstring.c bash-92-patched/bash-3.2/builtins/evalstring.c --- bash-92/bash-3.2/builtins/evalstring.c 2009-06-12 00:29:43.000000000 +0100 +++ bash-92-patched/bash-3.2/builtins/evalstring.c 2014-09-24 21:48:05.000000000 +0100 @@ -234,6 +234,14 @@ { struct fd_bitmap *bitmap; + if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def) + { + internal_warning ("%s: ignoring function definition attempt", from_file); + should_jump_to_top_level = 0; + last_result = last_command_exit_value = EX_BADUSAGE; + break; + } + bitmap = new_fd_bitmap (FD_BITMAP_SIZE); begin_unwind_frame ("pe_dispose"); add_unwind_protect (dispose_fd_bitmap, bitmap); @@ -291,6 +299,8 @@ dispose_command (command); dispose_fd_bitmap (bitmap); discard_unwind_frame ("pe_dispose"); + if (flags & SEVAL_ONECMD) + break; } } else diff -ur bash-92/bash-3.2/parse.y bash-92-patched/bash-3.2/parse.y --- bash-92/bash-3.2/parse.y 2013-01-22 01:37:34.000000000 +0000 +++ bash-92-patched/bash-3.2/parse.y 2014-09-26 10:00:36.000000000 +0100 @@ -253,9 +253,21 @@ /* Variables to manage the task of reading here documents, because we need to defer the reading until after a complete command has been collected. */ -static REDIRECT *redir_stack[10]; +static REDIRECT **redir_stack; int need_here_doc; +/* Pushes REDIR onto redir_stack, resizing it as needed. */ +static void +push_redir_stack (REDIRECT *redir) +{ + /* Guard against oveflow. */ + if (need_here_doc + 1 > INT_MAX / sizeof (*redir_stack)) + abort (); + redir_stack = xrealloc (redir_stack, + (need_here_doc + 1) * sizeof (*redir_stack)); + redir_stack[need_here_doc++] = redir; +} + /* Where shell input comes from. History expansion is performed on each line when the shell is interactive. */ static char *shell_input_line = (char *)NULL; @@ -424,13 +436,13 @@ { redir.filename = $2; $$ = make_redirection (0, r_reading_until, redir); - redir_stack[need_here_doc++] = $$; + push_redir_stack ($$); } | NUMBER LESS_LESS WORD { redir.filename = $3; $$ = make_redirection ($1, r_reading_until, redir); - redir_stack[need_here_doc++] = $$; + push_redir_stack ($$); } | LESS_LESS_LESS WORD { @@ -487,14 +499,14 @@ redir.filename = $2; $$ = make_redirection (0, r_deblank_reading_until, redir); - redir_stack[need_here_doc++] = $$; + push_redir_stack ($$); } | NUMBER LESS_LESS_MINUS WORD { redir.filename = $3; $$ = make_redirection ($1, r_deblank_reading_until, redir); - redir_stack[need_here_doc++] = $$; + push_redir_stack ($$); } | GREATER_AND '-' { @@ -2503,6 +2515,8 @@ FREE (word_desc_to_read); word_desc_to_read = (WORD_DESC *)NULL; + eol_ungetc_lookahead = 0; + last_read_token = '\n'; token_to_read = '\n'; } @@ -3767,7 +3781,7 @@ case CASE: case SELECT: case FOR: - if (word_top < MAX_CASE_NEST) + if (word_top + 1 < MAX_CASE_NEST) word_top++; word_lineno[word_top] = line_number; break; diff -ur bash-92/bash-3.2/patchlevel.h bash-92-patched/bash-3.2/patchlevel.h --- bash-92/bash-3.2/patchlevel.h 2013-01-22 01:37:34.000000000 +0000 +++ bash-92-patched/bash-3.2/patchlevel.h 2014-09-24 21:50:51.000000000 +0100 @@ -25,6 +25,6 @@ regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh looks for to find the patch level (for the sccs version string). */ -#define PATCHLEVEL 51 +#define PATCHLEVEL 52 #endif /* _PATCHLEVEL_H_ */ diff -ur bash-92/bash-3.2/variables.c bash-92-patched/bash-3.2/variables.c --- bash-92/bash-3.2/variables.c 2009-06-12 00:29:43.000000000 +0100 +++ bash-92-patched/bash-3.2/variables.c 2014-09-26 10:07:54.000000000 +0100 @@ -241,7 +241,7 @@ static void propagate_temp_var __P((PTR_T)); static void dispose_temporary_env __P((sh_free_func_t *)); -static inline char *mk_env_string __P((const char *, const char *)); +static inline char *mk_env_string __P((const char *, const char *, int)); static char **make_env_array_from_var_list __P((SHELL_VAR **)); static char **make_var_export_array __P((VAR_CONTEXT *)); static char **make_func_export_array __P((void)); @@ -274,6 +274,11 @@ #endif } +#define FUNCDEF_PREFIX "BASH_FUNC_" +#define FUNCDEF_PREFIX_LEN (strlen (FUNCDEF_PREFIX)) +#define FUNCDEF_SUFFIX "()" +#define FUNCDEF_SUFFIX_LEN (strlen (FUNCDEF_SUFFIX)) + /* Initialize the shell variables from the current environment. If PRIVMODE is nonzero, don't import functions from ENV or parse $SHELLOPTS. */ @@ -309,23 +314,30 @@ /* If exported function, define it now. Don't import functions from the environment in privileged mode. */ - if (privmode == 0 && read_but_dont_execute == 0 && STREQN ("() {", string, 4)) - { - string_length = strlen (string); - temp_string = (char *)xmalloc (3 + string_length + char_index); - - strcpy (temp_string, name); - temp_string[char_index] = ' '; - strcpy (temp_string + char_index + 1, string); + if (privmode == 0 && read_but_dont_execute == 0 + && STREQN (FUNCDEF_PREFIX, name, FUNCDEF_PREFIX_LEN) + && STREQ (name + char_index - FUNCDEF_SUFFIX_LEN, FUNCDEF_SUFFIX) + && STREQN ("() {", string, 4)) + { + size_t name_length + = char_index - (FUNCDEF_PREFIX_LEN + FUNCDEF_SUFFIX_LEN); + char *temp_name = name + FUNCDEF_PREFIX_LEN; + /* Temporarily remove the suffix. */ + temp_name[name_length] = '\0'; + + string_length = strlen (string); + temp_string = (char *)xmalloc (name_length + 1 + string_length + 1); + memcpy (temp_string, temp_name, name_length); + temp_string[name_length] = ' '; + memcpy (temp_string + name_length + 1, string, string_length + 1); + + /* Don't import function names that are invalid identifiers from the + environment. */ + if (legal_identifier (temp_name)) + parse_and_execute (temp_string, temp_name, + SEVAL_NONINT|SEVAL_NOHIST|SEVAL_FUNCDEF|SEVAL_ONECMD); - parse_and_execute (temp_string, name, SEVAL_NONINT|SEVAL_NOHIST); - - /* Ancient backwards compatibility. Old versions of bash exported - functions like name()=() {...} */ - if (name[char_index - 1] == ')' && name[char_index - 2] == '(') - name[char_index - 2] = '\0'; - - if (temp_var = find_function (name)) + if (temp_var = find_function (temp_name)) { VSETATTR (temp_var, (att_exported|att_imported)); array_needs_making = 1; @@ -333,9 +345,9 @@ else report_error (_("error importing function definition for `%s'"), name); - /* ( */ - if (name[char_index - 1] == ')' && name[char_index - 2] == '\0') - name[char_index - 2] = '('; /* ) */ + /* Restore the original suffix. */ + temp_name[name_length] = FUNCDEF_SUFFIX[0]; + } #if defined (ARRAY_VARS) # if 0 @@ -2213,7 +2225,7 @@ var->context = variable_context; /* XXX */ INVALIDATE_EXPORTSTR (var); - var->exportstr = mk_env_string (name, value); + var->exportstr = mk_env_string (name, value, 0); array_needs_making = 1; @@ -3003,22 +3015,44 @@ /* */ /* **************************************************************** */ +/* Returns the string NAME=VALUE if !FUNCTIONP or if VALUE == NULL (in + which case it is treated as empty). Otherwise, decorate NAME with + FUNCDEF_PREFIX and FUNCDEF_SUFFIX, and return a string of the form + FUNCDEF_PREFIX NAME FUNCDEF_SUFFIX = VALUE (without spaces). */ static inline char * -mk_env_string (name, value) +mk_env_string (name, value, functionp) const char *name, *value; + int functionp; { - int name_len, value_len; - char *p; + size_t name_len, value_len; + char *p, *q; name_len = strlen (name); value_len = STRLEN (value); - p = (char *)xmalloc (2 + name_len + value_len); - strcpy (p, name); - p[name_len] = '='; + if (functionp && value != NULL) + { + p = (char *)xmalloc (FUNCDEF_PREFIX_LEN + name_len + FUNCDEF_SUFFIX_LEN + + 1 + value_len + 1); + q = p; + memcpy (q, FUNCDEF_PREFIX, FUNCDEF_PREFIX_LEN); + q += FUNCDEF_PREFIX_LEN; + memcpy (q, name, name_len); + q += name_len; + memcpy (q, FUNCDEF_SUFFIX, FUNCDEF_SUFFIX_LEN); + q += FUNCDEF_SUFFIX_LEN; + } + else + { + p = (char *)xmalloc (name_len + 1 + value_len + 1); + memcpy (p, name, name_len); + q = p + name_len; + } + q[0] = '='; + if (value && *value) - strcpy (p + name_len + 1, value); + memcpy (q + 1, value, value_len + 1); else - p[name_len + 1] = '\0'; + q[1] = '\0'; return (p); } @@ -3093,7 +3127,7 @@ /* Gee, I'd like to get away with not using savestring() if we're using the cached exportstr... */ list[list_index] = USE_EXPORTSTR ? savestring (value) - : mk_env_string (var->name, value); + : mk_env_string (var->name, value, function_p (var)); if (USE_EXPORTSTR == 0) SAVE_EXPORTSTR (var, list[list_index]); ----- CUT HERE ------
Moderators Gi0 Δημοσ. 27 Σεπτεμβρίου 2014 Moderators Δημοσ. 27 Σεπτεμβρίου 2014 (επεξεργασμένο) Παπαρολογιας, το αναγνωσμα: "Tο Shellshock, γνωστό και ως Bash, ίσως είναι το μεγαλύτερο bug που έχει ανακαλυφθεί, αποτελώντας το μεγαλύτερο κενό ασφαλείας που απειλεί το διαδίκτυο." Το παραπανω ας το εχουν κατα νου οι "Μα-το-ειπαν-οι-ειδησεις!" Edit: Πονταρω πως το "ρεπορταζ" προεκυψε μετα απο..ενδελεχη ερευνα του συντακτη στα internetz. Δεν ξερω ποιο ειναι χειροτερο, να αντεγραψαν απλα απο αυτους ή να εφτασαν αντιστοιχα στο ιδιο συμπερασμα. Επεξ/σία 27 Σεπτεμβρίου 2014 από Gi0 2
iPhoTe64 Δημοσ. 27 Σεπτεμβρίου 2014 Δημοσ. 27 Σεπτεμβρίου 2014 Οι Mac users ας προσέχουν καλού κακού που σερφάρουν μέχρι να έρθει το update, σύμφωνα με την Apple δουλεύουν πάνω σε αυτό. http://www.imore.com/apple-working-quickly-protect-os-x-against-shellshock-exploit Εγώ προσωπικά(private) χρησιμοποιώ Mac τα τελευταία 10 χρόνια δεν είχα ποτέ κάποιο πρόβλημα ασφαλείας.
kleondas Δημοσ. 29 Σεπτεμβρίου 2014 Δημοσ. 29 Σεπτεμβρίου 2014 Μαλλον δεν εχεις δοκιμασει τα windows 8.1 σαν λειτουργικο. Παντως απο θεμα ασφαλειας θα διαφωνησω εντονα. Τον τελευταιο χρονο μονο για προβληματα στα ios/osx ακουμε. Kαι για να το παμε λιγο παραπερα το icloud το χακαραν, το onedrive οχι. Premium τιμες για Premium κλοπες. α. Τρεχω hackintosh OS X 10.9.4 (χωρις antivirus κτλ) και το βλεπει ολλο το συστημα μου εκτος απο μια καρτα τηλεωρασης. β. Το συστημα ειναι dual boot και σπανια γυριζω σε win7 γ. Στο λαπτοπ εχω 8.1 και το εχω μονο για media center με xbmc.Δηλαδη δεν εχει ιους κτλ θες να πεις? δ. cloud εχω μονο μεσω δικου μου NAS.Ουτε one drive ουτε icloud ουτε κανεναν απο third party.Μονο οτι εχω πανω στο γραφειο μου. ε. ναι η Apple σου πιανει τον κωλο για το hardware της.Εξ ου και το hackintosh. ciao και καλο ψαξιμο.
nemesis345 Δημοσ. 30 Σεπτεμβρίου 2014 Δημοσ. 30 Σεπτεμβρίου 2014 Ναι λες εσυ, οχι λεω εγω. Το brute forcing δεν ειναι hacking. Εαν βρω τον κωδικο του gmail σου επειδη χρησιμοποιεις τα γενεθλια σου, δεν εχω κανει hacking. Εαν διαφωνεις, no worries, σεβαστη η γνωμη σου. Offtopic για την ιστορία: Ο πρώτος χάκερ κατάφερε να αποκτήσει πρόσβαση σε αρχεία και δεδομένα ακολουθώντας μια πολύ απλή πρακτική, έπειτα από τηλεφωνική κλήση και προφασιζόμενος μια υπηρεσία σε ρωτούσε και έπερνε κάποιες συγκεκριμένες πληροφορίες! Εκμαιεύοντάς κατάφερνε να αποκτήσει πρόσβαση σε αρκετά προσωπικά σου δεδομένα. Στην συνέχεια και αφού εντοπίστηκε κλήθηκε να δουλέψει για μια κυβέρνηση.
Moderators Gi0 Δημοσ. 30 Σεπτεμβρίου 2014 Moderators Δημοσ. 30 Σεπτεμβρίου 2014 Offtopic για την ιστορία: Ο πρώτος χάκερ κατάφερε να αποκτήσει πρόσβαση σε αρχεία και δεδομένα ακολουθώντας μια πολύ απλή πρακτική, έπειτα από τηλεφωνική κλήση και προφασιζόμενος μια υπηρεσία σε ρωτούσε και έπερνε κάποιες συγκεκριμένες πληροφορίες! Εκμαιεύοντάς κατάφερνε να αποκτήσει πρόσβαση σε αρκετά προσωπικά σου δεδομένα. Στην συνέχεια και αφού εντοπίστηκε κλήθηκε να δουλέψει για μια κυβέρνηση. Οfftopic, η συνεχεια: Και γι αυτο ο Kevin Mitnick χαρακτηριζεται ως ο καλυτερος social engineer (..ή τουλαχιστον μεσα στους καλυτερους) και οχι ως ο καλυτερος hacker. Ontopic Apple updates για το shellshock: Mavericks Lion Mountain Lion 3
nemesis345 Δημοσ. 30 Σεπτεμβρίου 2014 Δημοσ. 30 Σεπτεμβρίου 2014 Πρέπει να ανησυχώ για windows xp με Xampp?
Moderators Gi0 Δημοσ. 30 Σεπτεμβρίου 2014 Moderators Δημοσ. 30 Σεπτεμβρίου 2014 Πρέπει να ανησυχώ για windows xp με Xampp? Οχι, για το shellshock. Αλλα θα πρεπει να ανησυχεις για τα Windows XP. 1
nemesis345 Δημοσ. 30 Σεπτεμβρίου 2014 Δημοσ. 30 Σεπτεμβρίου 2014 Οχι, για το shellshock. Αλλα θα πρεπει να ανησυχεις για τα Windows XP. Χαχαχαχα... Αυτό είναι το μόνο σίγουρο! Οfftopic, η συνεχεια: Και γι αυτο ο Kevin Mitnick χαρακτηριζεται ως ο καλυτερος social engineer (..ή τουλαχιστον μεσα στους καλυτερους) και οχι ως ο καλυτερος hacker. Ontopic Apple updates για το shellshock: Mavericks Lion Mountain Lion Να και κάποιος διαβασμένος!
coffeex Δημοσ. 2 Οκτωβρίου 2014 Δημοσ. 2 Οκτωβρίου 2014 Όσο ασχολούμαστε με το θέμα του Bash φαίνεται να υπάρχει και άλλο πρόβλημα με το XEN που μέχρι στιγμής δεν έχει γίνει τίποτα γνωστό αλλά η Amazon Amazon forced to reboot EC2 to patch Xen bug από αρχές του επόμενου μήνα θα μάθουμε και το λόγο. Για την ιστορία, σήμερα... "Multiple security issues have been discovered in the Xen virtualisation solution which may result in denial of service, information disclosure or privilege escalation."
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα